Salve ecco il codice del programma:
#include <stdio.h>
#include <stdlib.h>
main()
{
int *v;
int i=0,n,j=1;
printf("N:");
scanf("%d",&n);
v=(int*)malloc(n*sizeof(int));
for(i=0;i<=n;i++){
v[i]=i;
}
v[0]=0;
v[1]=0;
for(i=2;i<=n;i++){
if(v[i]!=0){
for(j=2*i;j<=n;j=j+i){
v[j]=0;
}
}
}
for(i=0;i<=n;i++){
if(v[i]!=0){
printf("%d--",v[i]);
}
}
free(v);
printf ("\n\n");
}
Il programma funziona abbastanza bene anche se n è molto grande, ma per qualche ragione se n è minore di 50 esce un errore.Potete aiutarmi?