#include<stdio.h>
int a[1000000+11]={1,1};
int main()
{
int i;
for(i=2;i<=1000000;i++)//筛选出所有素数
{
if(a[i]==1)
continue;
for(int j=2*i;j<=1000000;j+=i)
a[j]=1;
}
int n;
while(~scanf("%d",&n))
{
if(a[n]==1)
printf("非素数\n");
else
printf("素数\n");
}
return 0;
}
int a[1000000+11]={1,1};
int main()
{
int i;
for(i=2;i<=1000000;i++)//筛选出所有素数
{
if(a[i]==1)
continue;
for(int j=2*i;j<=1000000;j+=i)
a[j]=1;
}
int n;
while(~scanf("%d",&n))
{
if(a[n]==1)
printf("非素数\n");
else
printf("素数\n");
}
return 0;
}

本文介绍了一个使用C语言实现的素数筛选算法。该算法通过预填充数组并迭代更新非素数值来快速判断输入整数是否为素数。程序首先初始化一个包含前两个素数的数组,并通过遍历和标记合数的方式生成后续的素数。最终,程序能够高效地判断任意小于100万的整数是否为素数。
1233

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



