求素数
Time Limit: 100MS Memory limit: 65536K
求素数
Time Limit: 100MS Memory limit: 65536K
题目描述
求小于n的所有素数的数量。
输入
多组输入,输入整数n(n<1000000),以0结束。
输出
输出n以内所有素数的个数。
示例输入
10 0
示例输出
4
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,m;
while(~scanf("%d",&n)&&n!=0)
{
m=0;
int a[10001]={0};
int j=0;
a[0]=a[1]=0;
a[2]=1;
for(i=3;i<=n;i++)
a[i]=i%2==0?0:1;
for(j=3;j<=n;j++)
for(i=3;i<=n;i++)
if(a[i]==1&&j!=i)
a[i]=i%j==0?0:1;
for(i=0;i<=n;i++)
if(a[i]==1)
m++;
printf("%d\n",m);
}
return 0;
}