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