求素数
Time Limit: 100ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
求小于n的所有素数的数量。
输入
多组输入,输入整数n(n<1000000),以0结束。
输出
输出n以内所有素数的个数。
示例输入
10 0
示例输出
4
分析:
#include<stdio.h>
#define M 1000000
bool s[M];
int main()
{
int i,j;
for(i=2; i<M; i++)
s[i]=1;
for(i=2; i<1000; i++)
if(s[i])
for(j=i*2; j<M; j+=i)
s[j]=0;
int n,ans;
while(scanf("%d",&n),n)
{
ans=0;
for(i=2; i<=n; i++)
if(s[i]) ans++;
printf("%d\n",ans);
}
return 0;
}