Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia
Preciso fazer um programa que gere a sequência de numeros primos usando o algoritmo de Crivo
Eu fiz o seguinte programa abaixo
A minha dúvida e a seguinte como eu posso fazer para que o programa mostre os primos digitados sem ter um limite estabelecido no começo do programa
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#define NMAX 100000//tamanho limite para as contas
main ()
{
int k,i,j,a=1;
int primos[NMAX];
float raiz;
while(a!=0) { //Comando para entrer com novos valores
system("cls"); //Comando para limpar a tela
printf("Digite a quantidade de numeros a verificar de 1 ate 100000: \n");
scanf("%d",&k);
raiz = sqrt(k);
for(i=2; i<=k; i++){
primos[i]=i;
}
for(i=2; i<=raiz; i++){
if(primos[i]==i){
for (j=i+i; j<=k; j+=i)
primos[j]=0;
}
}
for(i=2; i<=k; i++){
if(primos[i]!=0)
printf("%d ",primos[i]);
}
printf("\nDeseja entrar com outro valor? (1 - sim 0 - nao)\n");
scanf("%d",&a);
printf("\n");
}
printf("\n");
system("pause");
return 0;
}Carregando comentários...