Ir ao conteúdo
  • Cadastre-se

Ajuda em imprimir os primos entre dois números x e y


swan
Ir à solução Resolvido por swan,

Posts recomendados

#include <stdio.h>#include <locale.h>//números primos entre x e ymain (){	setlocale (LC_ALL, "portuguese");	int x,y,cont=0,primo,divisor;	printf ("\n\nEntre com o primeiro número: ");	scanf ("%d", &x);	printf ("Entre com o segundo número: ");	scanf ("%d", &y);	if (x>y){		for (primo=x;primo<=y;primo--){			for (divisor=1;divisor<=primo;divisor++){				if (primo%divisor==0){					cont++;				}			}		if (cont==2){			printf ("%d ,", primo);		}		}	} else {		for (primo=y;primo<=x;primo--){			for (divisor=1;divisor<=primo;divisor++){				if (primo%divisor==0){					cont++;				}			}		if (cont==2){			printf ("%d ,", primo);		}		}	}}

Código compila mas não imprime os primos. Para na leitura do segundo número.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

mudei para >= e não adiantou  :(

 

Aqui funcionou.

 

for (primo = x; primo >= y; primo--){

e no

for (primo = y; primo >= x;primo--){

não é em todos. O for interno permanece <=

Isso seria evitado se você não misturasse incremento com decremento. 

 

Só que o resultado ainda sai errado.

 

Coloque um getch() no final do código antes da última chave }

Link para o comentário
Compartilhar em outros sites

  • Solução

Alterei os sinais mas só mostrava 1 primo

Descobri o erro no código

a variável cont não tava sendo zerada pra ser incrementada em cada volta do laço for

 

refiz ele com alguma alterações

 

agora ta certinho

#include <stdio.h>#include <conio.h>//imprimir os números primos entre dois outros númerosmain(){	int num1,num2,divisor,primos,cont;	printf ("\n\nEntre com o primeiro número: ");	scanf ("%d",&num1);	printf ("Entre com o segundo número: ");	scanf ("%d",&num2);	if (num1==num2){		printf ("Números iguais!");		main();	}	if (num1>num2){		printf ("\n\n====Primos entre %d e %d====\n\n",num2,num1);		num2++;		num1--;		for (primos=num2;primos<=num1;primos++){			cont=0;			for (divisor=1;divisor<=primos;divisor++){				if (primos%divisor==0){					cont++;				}			}			if (cont==2){			printf (" - %d - ", primos);			}		}	} else {		printf ("\n\n====Primos entre %d e %d====\n\n",num1,num2);		num1++;		num2--;		for (primos=num1;primos<=num2;primos++){			cont=0;			for (divisor=1;divisor<=primos;divisor++){				if (primos%divisor==0){					cont++;				}			}			if (cont==2){			printf (" - %d - ", primos);			}		}	}getch();}
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...