/* 素数的筛选找法 coder:qpz time:2014-12-15 */ #include <stdio.h> #include <stdlib.h> void Init(char *a,int n) { inti; for(i=0;i<n;i++){ if(i<2){ a[i]=0; }else{ a[i]=1; } } } void findit(char *a,int n); int main(void) { intn; scanf("%d",&n); char*a=(char *)malloc((n+1)*sizeof(char)); Init(a,n); findit(a,n); return0; } void findit(char *a,int n) { inti,j; intcnt; printf("%d以内的素数有:",n); for(i=4;i<=n;i++){ for(j=2;j*j<i;j++){ if(a[j]){ if(i%j == 0){ a[i]=0; break; } } }/*endj*/ }/*endi*/ for(i=0,cnt=0;i<=n;i++){ if(a[i]){ if(cnt%10== 0) { putchar('\n'); } printf("%5d",i); cnt++; } } }