算法學習java-埃拉托斯特尼篩法(判定素數(shù))
素数
引用自百度百科
埃拉托斯特尼筛法,简称埃氏筛或爱氏筛,是一种由希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法。要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。
public class Main {
//素数的个数,也是b的下标
private static int tot=0;
public static void main(String[] args) {
soe(1000000);
}
private static void soe(int n) {
// TODO Auto-generated method stub
long[] a=new long[n+1];
long[] b=new long[n+1];
for(long i=2;i<=n;i++){
if(a[(int)i]!=0)continue;
b[tot++]=i;
for(long j=i;j*i<=n;j++){
a[(int)(i*j)]=1;
}
}
for(int i=0;i<tot;i++){
System.out.println(b[i]);
}
}
}
以上个人拙见,还请诸位斧正
點擊查看更多內(nèi)容
1人點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦