我只是一名菜鸟,这是我看了大神的算法之后,试着写的,如有不对,欢迎赐教。
#include <stdio.h>
#include <stdlib.h>#include <string.h>
#include <time.h>
#define maxn 100000
int prime[maxn],flag=0;
int isprime[maxn];
int main()
{
memset(isprime,0,sizeof(isprime));
isprime[0]=1;
isprime[1]=1;
register int i,j;
for(i=4; i<maxn; i+=2)
isprime[i]=1;
for(i=2; i<maxn; i++)
{
if(!isprime[i]) prime[flag++]=i;
for(j=0; j<flag&&i*prime[j]<maxn; j++)
{
isprime[i*prime[j]]=1;
}
}
for(i=0; prime[i]!=0; i++)
printf("%8d",prime[i]);
printf("\n");
printf("Time used =%f\n",(double)clock()/CLOCKS_PER_SEC);
return 0;
}