Ho realizzato il seguente programma in c per calcolare i numeri primi minori di N.
codice:
#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?