此方法求素数是相当快的。
#include <stdio.h>
#define MAX 1000001
int table[MAX];
int main()
{
int i;
int j;
int a,count=0;
while (scanf("%d",&a)&&(a!=0))
{
for (i = 0;i < a;i++)
table[i] = 1;
for (i = 2;i <a;i++)
if (table[i] == 1)
for (j = 2;i*j < a;j++)
{
table[i*j] = 0;
}
for (i = 2;i < a;i++)
if (table[i] == 1) count++;
printf("%d\n",count);
count=0;
}
return 0;
}
264

被折叠的 条评论
为什么被折叠?



