#include<stdio.h>
#include<math.h>
#define n 10002
int a[n];
int pr[10002],count;
void su()
{
int i,j,p;
for(i=2;i<=n;i++)
a[i]=1;
for(i=2;i<sqrt(n);i++)
{
for(p=i+i;p<n;p=p+i)
a[p]=0;
}
j=0;
for(i=0;i<n;i++)
{
if(a[i]==1)
{
pr[j]=i;
j++;
}
}
count=j;
}
int main()
{
int i;
su();
for(i=0;i<=count-1;i++)
printf("%d ",pr[i]);
return 0;
}
本文介绍了一个用于筛选素数的算法实现。通过使用标记数组的方法,该算法能够在指定范围内高效地找出所有素数。代码首先初始化一个标记数组,并利用数学原理进行优化,避免非素数的重复检查。

621

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



