Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

milaBastos

[Resolvido] Numeros primos

Recommended Posts

Boa tarde!!

 

Estava estudando c e me ocorreru uma dúvida:

 

alguém sabe uma lógica para determinar quais são o numeros primos de 10 ate 20, por exemplo?

 

Estou tentando implementar isso faz tempo

O codigo que tenho é este:

#include<stdio.h>

main(){
       int numero1,numero2,controle=0,soma=0;


printf("\n\t-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_");         
printf("\n");
printf("               \t\t*.* Numeros Primos *.*               ");       
printf("\n\t-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_");
       
       printf("\n\tInforme o primeiro numero:");
       scanf("%d",&numero1);
       printf("\n\tInforme o segundo numero:");
       scanf("%d",&numero2);
       
       for(controle=numero1;controle<=numero2;controle++)
       {
       
        //logica para o numero primo
         if(((controle % controle)==0)&&((controle % 1)==0))
         {
          soma += controle;
          
          //Verificando quais sao os numeros primos.
          printf("\n\t%d",controle); 
         }  
         }
      
  printf("\n\t-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_\n\n");     
      
  printf("A soma dos numeros primos entre %d e %d e: %d",numero1,numero2,soma);
      
  printf("\n\n\t-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-\n\n\t");
  
  system("pause");
    }

Sei que a lógica da atribuição do numero primo esta errada.

 

Deste modo, ocorre é a soma entre todos os numeros do numero 1 ao numero 2.

 

Alguém sabe como concertar?

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada pela ajuda...

 

Consegui achar um tópico relacionado ,porem implementei novamente.

 

Praticamente do mesmo modo que esta no tópico mas não esta aparecendo o resultado que quero:

 

Pode me ajudar a encontrar o erro?

 

Segue o que fiz:

#include<stdio.h>

main(){
       int numero1,numero2,controle=0,soma=0,x=0,divisores=0;

printf("\n\t-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_");         
printf("\n");
printf("               \t\t*.* Numeros Primos *.*               ");       
printf("\n\t-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_");
       
       printf("\n\tInforme o primeiro numero:");
       scanf("%d",&numero1);
       printf("\n\tInforme o segundo numero:");
       scanf("%d",&numero2);
       
for(controle=numero1;controle<=numero2;controle++)
{ 
        for(x=controle; x>0; x--){
                if(controle%x==0){
                divisores++;//incrementa o numero de divisores
                }
        }
           if(divisores==2)
          {
            printf("\n\t%d",controle); 
            soma += controle;
          }
        
}  
  
  printf("\n\t-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_\n\n");     
      
  printf("A soma dos numeros primos entre %d e %d e: %d",numero1,numero2,soma);
      
  printf("\n\n\t-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-\n\n\t");
  
  system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não zera a contagem de divisores.

Aliás nem é necessário contar divisores.

 

for(controle=numero1;controle<=numero2;controle++) {
for(x=2; x<controle && (controle%x) != 0; x++) ;
if(x == controle) {
	printf("\n\t%d",controle);
	soma += controle;
}
}

 

1 não é número primo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não zera a contagem de divisores.

Aliás nem é necessário contar divisores.

 

for(controle=numero1;controle<=numero2;controle++) {
	for(x=2; x<controle && (controle%x) != 0; x++) ;
	if(x == controle) {
 	printf("\n\t%d",controle);
 	soma += controle;
	}
 }

1 não é número primo.

 

 

OBrigada Se cuida...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.