由Eratosthenes提出 故名而来,采用改为合数的判断,进行统计。
此算法只是一种处理思想,要善于利用到类似的情况进行求解
public static int Eratosthenes(int n)
{
boolean[] isprame=new boolean[n];
int count=0;
for (int i=2;i<n;i++) {
if(!isprame[i]) {
count+=1;
for (int j=i*i;j<n;j+=i)//最初其中的i设置的初值为2 考虑2*3和3*2是同一个效果 把2替换为i
{
isprame[j]=true;
}
}
}
return count;
}
main函数传参即可输出结果
该代码实现了一个基于Eratosthenes的素数计数算法,通过标记合数来统计小于给定数n的素数数量。它从2开始,将所有2的倍数标记为合数,然后继续检查下一个未标记的数,重复此过程,直到遍历完整个数组。最终返回的是素数的个数。

1784

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



