Logo Hardware.com.br
Etinin
Etinin Veterano Registrado
1.3K Mensagens 34 Curtidas
#3 Por Etinin
21/11/2006 - 13:51
Não sei dizer se é o método mais eficiente mas foi a primeira coisa em que eu pensei.
Está sem comentários mas é um programa bem simples, para obter mais números aperte enter, para sair aperte q + enter.


#include<stdio.h>

int main()
{
int i=2;
int b=2;
int c=0;
char q;
while(1)
{
while(b<i)
{
if(i % b == 0)
{
c=1;
break;
}
b=b+1;
}

b=2;

if(c==0)
{
printf("%d", i);
q=getchar();
if(q=='q')
return 0;
}

c=0;

i++;
}
}
ZIN
ZIN Veterano Registrado
1.2K Mensagens 3 Curtidas
#5 Por ZIN
21/11/2006 - 15:43
É melhor vc criar uma função, fazer o número dividir por ele mesmo e por outros números, se ele for primo não passa das outras divisões.

Entra com um dado printf("Entre com o número de teste");
scanf("%d",&num);

Depois chama uma função, e faça o número ser dividido por dois e três, se ambos os resultados forem inteiros, vc diz que ele não é primo, se um deles for inteiro também não é primo, só será primo quando ambos forem reais.

Abraços!
Etinin
Etinin Veterano Registrado
1.3K Mensagens 34 Curtidas
#10 Por Etinin
21/11/2006 - 21:09
Juro que não tinha entendido o significado de n antes O.o

Aqui vai uma versão modificada (como disse antes, esse não é o método mais rápido, mas agora que eu pensei, gasta menos memória que o outro em que eu pensei e, deve ser um bom teste de estresse da CPU se você entrar um número muito alto haha):


#include<stdio.h>

int main()
{
int i=2;
int b=2;
int c=0;
int d, e=0;
printf("Entre o numero de numeros primos desejados: &quot;
scanf("%d", &d);
while(e<d)
{
while(b<i)
{
if(i % b == 0)
{
c=1;
break;
}
b=b+1;
}

b=2;

if(c==0)
{
printf("%d\n", i);
e++;
}

c=0;

i++;
}
}
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal