手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

如何巧用一个正则表达式判断素数(质数)

时间:2024-10-12 05:49:44

1、先来看这个正则表达式/^.?$|^(..+?)\1+$/下面按顺序解释一下:/表示正则表达式开始或结束^表示匹配字符串的开头.表示任意单个字符(除了换行、制表符、空格等空字符)?表示出现0次或1次$表示匹配字符串的结尾|表示逻辑或^表示匹配字符串的开头(子表达式开头扩起来.表示任意单个字符(除了换行、制表符、空格等空字符)+表示出现1次或更多次?表示出现0次或1次)子表达式结尾扩起来\1表示匹配前面的子字符串+表示出现1次或更多次$表示匹配字符串的结尾/表示正则表达式开始或结束

如何巧用一个正则表达式判断素数(质数)

2、在JS中,可以使用这个正则表达式,来判断一个正整数是否为素数。使用语法:!/^.?$|^(..+?)\1+$/.test(Array(你的数字+1).join('1'))结果为true,表示是素数结果为false,表示不是素数(为1或者合数)

如何巧用一个正则表达式判断素数(质数)

3、具体我们来用Chrome浏览器来演示:首先,我们打开Chrome浏览器,按下F12进入开发者调试界面。点击Console,进入控制台。

如何巧用一个正则表达式判断素数(质数)

4、在控制台中输入上述代码,并且修改代码中需检验是否为素数的数字,例如: 19然后按下回车,查看结果。结果为true,表示是素数。结果为false,表示不是素数。

如何巧用一个正则表达式判断素数(质数)

5、注意,在JS中,由于数组有长度限制。最大长度为Math.pow(2,32),即4294967296如果你需要检验的数栓疠瑕愤字,比4294967296还大,那么上述代码中的Array就会报错。此时,我们可以使用for循环改写一下即用for循环来把字符串拼接起来,进行素性测试。vart='';for(vari=0;i<你的数字;i++){t+='1'} !/^.?$|^(..+?)\1+$/.test(t)上述代码中加粗部分你的数字,修改为实际需要检测的正整数即可。

如何巧用一个正则表达式判断素数(质数)

6、最后,我们来介绍一下,如何借助上面的素数检验的正则表达式,来快速打印素数表。分别以100以内和1000以内的素数表为例。我们只需在Chrome控制台,输入代码var t=[];for(var i=1;i<100;i++){if(!/^.?$|^(..+?)\1+$/.test(Array(i+1).join('1'))){t.push(i)}} t.join(' ')其中加粗部分数字100,可以改为你希望的数字,用于控制质数输出的最大范围(注意,不要超过4294967296,否则要改写代码)。

如何巧用一个正则表达式判断素数(质数)
© 手抄报圈