素數(質數)篩選法


給定一個正整數N,求出【2、N】中的所有素數。

兩種實現方法

//素數(質數)篩選法 O(NlogN)
function getPrime(n){
    const arr=[]
    const ans=[];
    let d=0;
    for(let i=2;i<=n;i++)arr[i]=true
    for(let i=2;i<=n;i++){
        if(n/i<i)break;
        for(let j=i*i;j<=n;j+=i){
            arr[j]=false
        }
    }
    for(let i=2;i<=n;i++)if(arr[i])ans[d++]=i;
    console.log(ans)
}
getPrime(10)

  

//素數(質數)篩選法O(N)
function getPrime(n){
    const arr=[]
    const ans=[];
    let tot=0;
    for(let i=2;i<=n;i++){
        if(!arr[i]){
            ans[tot++]=i;
        }

        for(let j=0;j<tot&&i*ans[j]<=n;j++){
            arr[i*ans[j]]=true;
            if(i%ans[j]==0)break;
        }
    }
    console.log(ans)
}
getPrime(10)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM