问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JavaScrpt判断一个数是否是质数的实例代码

发布网友 发布时间:2022-05-02 22:46

我来回答

1个回答

热心网友 时间:2022-06-28 00:38

PrimeA=function(n,nth){/*小于n的素数表
参数nth指定返回第n个素数

*/
//var t0=Time.now5();
/*
方法1:利用isPrime废弃!

var t=[];
for(var i=2;i<n+1;i++){
if(isPrime(i)){
t.push(i)
}
}
consolelog('方法1:耗时:'+(+Time.now5()-(+t0)));
return t
*/

//方法2:利用筛法
var p=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999];
if(nth && n<=669){
return p[n-1]
}
if(!nth && n<2){
return []
}

if(n<=5000 && !nth){

for(var i=0;i<100;i++){
var j=p.indexOf(n-i);
if(j>-1){return p.slice(0,j+1)};
}
return p
}

var m=nth?Math.ceil(n*Math.log(n)+1000):n;//pn ∼ nln(n)
//for(var i=5001;i<=m;i+=2){
var i=5001;
while(i){
var t=Math.floor(Math.sqrt(i)), pl=p.length;
for(var j=0;j<pl;j++){//p.length
if(i%p[j] == 0){
break
}else if(p[j+1]>t){
p.push(i);
if(nth && pl==n-1){
return i
}
break;
}
}
if(!nth && i>=n-1){
return p
}
i+=2;
}
return p


//方法3:Wilson测试


}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
硅胶与液态硅胶手机壳的区别 什么样的过敏会传染 过敏的原理是什么?为什么有的人过敏,有的人不过敏?谢谢! 过敏为什么会痒 评审报告需要注意什么 财政评审流程及注意事项 高效项目评审的6大注意事项 银行双录 什么意思 什么是银行双录 在异地哪些可公证 LAB.SCR注册过商标吗?还有哪些分类可以注册? win7 自带系统还原怎么打开 点击系统还原时说系统保护已关闭 怎么打开系统还原啊 伊利雪糕品种 parasaver.scr,spotsaver.scr,puzzsaver.scr是什么文件 如何加强小学三年级学生的数学能力培养 三星笔记本摄像头不能识别 联想F31笔记本下划线怎么打 三星笔记本电脑win10怎么拍照 如何提高三年级数学的教学成绩的措施 节能减排SCR是什么 新买的三星笔记本电脑,怎样打开视频功能拍照? Scrёām 什么意思? SAMSUNG三星笔记本电脑ATIV摄像头不能使用 360提示 自动运行程序Isos.scr 在钉钉上自创健康打卡后如何添加人员? 三星相机连接电脑没反应 三星笔记本没有照相机怎么安装 三星笔记本电脑按什么按键找出相机 请问,香港公司SCR备档是怎么登记的呢? 斯图亚特型坦克的坦克世界 windows 7怎么在安全模式打开系统保护我 三星相机连不上电脑 电脑进入安全模式后进行系统还原,怎么打开系统保护 条码扫描枪扫描条码时,位数不对,怎么回事 三星笔记本wid10怎样能拍照片 三星笔记本上R467有摄像头但找不到图标,是XP系统 为什么扫描枪扫出来数据和原数据是不正确 电脑蓝屏自动重启,进入安全模式后无法解除,想要系统还原,出现“系统保护已关闭”等字眼,如何解决? 我用激光扫码*扫描 邮政面单时,扫描出来的总比实际的少一位?急 求助:扫描枪扫描出来的数据,不正确,怎么办? 电脑每次开机都出现“为了保护帮助您的计算机,WINDOWS已经关闭了此程序。”怎么办?? 我的扫码*商标是(JINMING)扫码后总是缺少几位,重新扫描后缺少的每次都不一样,为什么? 条码扫描*扫描出来的内容跟条码不一样比如:SYL01001,扫描出来的SHL01001,或者有%字符! 我在用扫描*扫条码的时候,13位的条码扫到文本框上位数变少了是什么原因? 激光扫描枪扫条码老是扫错 扫描*在excel中扫描数字少一位,不管扫描位数长的还是短的条码 ,最后一位数都不显示,应该怎么设置? 条码扫描*扫描出来的内容跟条码内容不一样,比如:SYL01001,扫描出来是SHL01001,或者有%号! 扫描枪,扫自己打出来的code 39条码,总是多一位,求请教 关于盘点机、扫描*识别出来的条码不正确的问题,希望得到高手解释一下! 为什么我的扫描*扫条码扫出来的总是少一位数呢 而且还是少中间的?