首页 > 编程知识 正文

python求素数代码,js从大到小排序算法

时间:2023-05-03 06:54:35 阅读:61999 作者:1001

一、参考链接https://blog.csdn.net/Huang _ Miao _ Xin/article/details/51331710

二、一个数为素数方法一:直观判断法

//方法1 :直观判断法let a=3; let b=4; functionisprimenum(a ) if ) a===1) {返回假; (for ) letI=2; ia; I ) if(a%I===0) { return false; } }返回真; }console.log(isprimenum(a )/true console.log (isprime num ) )//false 方法二:直观判断法升级版,缩小判断范围

let a=3; let b=4; functionisprimenum(a ) if ) a===1) {返回假; (for ) letI=2; I=math.sqrt(a; I ) if(a%I===0) { return false; } }返回真; }console.log(isprimenum(a )/true console.log (isprime num ) )//false 方法三:素数筛

//方法3 :素数筛functionisprimenum(a ) /特殊情况下,1不是素数if (a==1) ) {返回假; (除//5以外的素数先查询if(a===2||a===3) {返回真; (/)非5的倍数以及非7的倍数是非素数if (() ) ) ) ) ) ) a ) 6!==1() a % 6!==5) {返回假; //5和7到6递增letnum=math.sqrt(a ); for(letI=5; i=num; i=6) if((a%I===0)|(a % ) I2 )==0) {返回假; } }返回真; }控制台. log (isprime num (11 ); //true console.log (isprime num (13 ); //true控制台. log (isprime num (12 ); //false控制台. log (isprime num (999 ); //false三、数字n内的所有素数1、具体代码:埃式筛选法

//埃式筛选法varcountprimes=function(n ) if ) n===1) return ); } let res=[]; let primes=[]; let map=new Map (; //辅助记录的当前数是否为素数for (leti=2; i=n; I ) (primes.push ) ); map.set(I,true ); (for ) letI=0; iprimes.length; I ) if(map.get(primes[I]==true ) { //cxdjy筛法精髓-如果当前数目是素数,则当前数目的两倍以及当前数目加到当前数目的两倍的整数循环的所有数目都是素数for (lld jy j=primes[I](map.set(j,false ); }RES.push(primes[I]; //console.log(primes ); //2、3、4、5、6、7、8、9、10 ]返回RES; (; letresult=countprimes(10; 控制台. log (result; //[ 2,3,5,7 ]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。