PDA

Visualizza la versione completa : [C]Ottimizzazione crivello Eratostene


darth fener
09-02-2009, 17:06
Ho realizzato il seguente programma in c per calcolare i numeri primi minori di N.


#include <stdio.h>
#include <stdlib.h>

int main(){
int N, *vettore,i;
printf("Inserisci numero fino a cui vuoi calcolare numeri primi: ");
scanf("%d",&N);
N--;
vettore=(int *)malloc(sizeof(int)*N);
for(i=0;i<N;i++) vettore[i]=i+1;
for(i=3;i<N;i+=2) vettore[i]=0;
for(i=5;i<N;i+=3) vettore[i]=0;
for(i=9;i<N;i+=5) vettore[i]=0;
for(i=13;i<N;i+=7) vettore[i]=0;
for(i=0;i<N;i++)
if(vettore[i]!=0)
printf("%d ",vettore[i]);
free(vettore);
getch();
}

Ho cercato questo algoritmo su internet, ed ho visto che è diverso(praticamente nessuno è uguale al mio). Ho visto anche quello su wikipedia, ma nn l'ho capito tanto(usa funzioni che io non so ancora usare). Mi potete aiutare ad ottimizzare il mio algoritmo?

Loading