給定一個正整數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)