int sushu(int m)
{
char *is=new char[m+1];
memset(is,0,sizeof(char)*(m+1));
int i,j,k=1;
for(i=3;i<=m;i+=2)
{
for(j=3;j<=i,j*i<=m;j+=2)
{
is[i*j]=1;
}
if(is[i]==0)
k++;
}
delete is;
return k;
}
int main()
{
int m,n;
while(scanf("%d",&m),m)
{
if(m<2)
{
puts("0");
continue;
}
printf("%d\n",sushu(m));
}
return 0;
}
筛选素数个数(10^8以内)
最新推荐文章于 2023-01-15 11:47:12 发布