给定一个正整数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)