PDA

Visualizza la versione completa : [C]Ottimizzazione crivello Eratostene


 
darth fener
09-02-2009, 16: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