资讯专栏INFORMATION COLUMN

【奇技淫巧】利用正则进行需要整除操作的判断,如:奇偶性,质数合数

Cruise_Chan / 3611人阅读

摘要:利用正则表达式可以来进行某些需要整除操作的判断,例如奇偶性,质数合数等。本文建议有一定正则基础的看,需要了解基本的正则,回溯,贪心等。当然,由于的原因仅限于非负整数的判断。

利用正则表达式可以来进行某些需要整除操作的判断,例如:奇偶性,质数合数等。

PS:本文建议有一定正则基础的看,需要了解基本的正则,回溯,贪心等。

奇偶性

判断偶数:首先把数字n转化为重复n次1的字符串,然后通过正则的匹配判断该字符串是否是多个或则0个(0也是偶数)重复的11字符串。

function isEven(n) {
  return /^(11)*$/.test("1".repeat(n));
}

isEven(0); // true
isEven(1); // false
isEven(2); // true

PS:当然,由于repeat的原因仅限于非负整数的判断。

判断奇数:奇数和偶数互逆,加一个非就行了。

function isOdd(n) {
  return !/^(11)*$/.test("1".repeat(n));
}

isEven(0); // false
isEven(1); // true
isEven(2); // false
质数合数

判断合数:同上转换为字符串。然后通过正则匹配是否由2个及以上重复的字符串"11..."(1的个数也必须是2个及以上,能被1整除的不一定是合数)。

function isNotPrime(n) {
  return /^(11+?)1+$/.test("1".repeat(n))
}
isNotPrime(0); isNotPrime(1); isNotPrime(2); isNotPrime(3); isNotPrime(5); // false  
isNotPrime(4); isNotPrime(6); isNotPrime(8); isNotPrime(9); isNotPrime(10); // true

判断质数:质数和合数在除开0,1的情况下的自然数来看是互逆的,那么只需要给0,1特殊处理即可。

function isPrime(n) {
  return !/^1?$|^(11+?)1+$/.test("1".repeat(n))
}

isPrime(2); isPrime(3); isPrime(5); isPrime(7); isPrime(11); isPrime(13);// true  
isPrime(0); isPrime(1);isPrime(4); isPrime(6); isPrime(8); isPrime(9); isPrime(10); // false

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/91772.html

相关文章

  • 质数各个算法比较

    摘要:首先明确一下概念质数又称素数,有无限个。质数定义为在大于的自然数中,除了和它本身以外不再有其他因数的数称为质数。以内质数表质数的个数是无穷的。 首先声明本人水平有限,仅仅做一下记录,有错的地方请指正,文章垃圾请包容!! 在网上不小心浏览到一篇技术博客,叫做《求质数算法的N种境界(N>10)》,写得很好,有兴趣的读者自己去搜索。然后就想自己去试试这篇博客里写得各种求质数的方法。 不想搭...

    QLQ 评论0 收藏0
  • JavaScript正则进阶之路——活学妙用奇淫正则表达式

    摘要:正则大法好,正则大法好,正则大法好,重要的事情说三遍。第二部分,这个部分是整个表达式的关键部分。学习正则如果还没有系统学习正则表达式,这里提供一些网上经典的教程供大家学习。正则表达式使用单个字符串来描述匹配一系列匹配某个句法规则的字符串。 原文收录在我的 GitHub博客 (https://github.com/jawil/blog) ,喜欢的可以关注最新动态,大家一起多交流学习,共同...

    BearyChat 评论0 收藏0
  • JavaScript正则进阶之路——活学妙用奇淫正则表达式

    摘要:正则大法好,正则大法好,正则大法好,重要的事情说三遍。第二部分,这个部分是整个表达式的关键部分。学习正则如果还没有系统学习正则表达式,这里提供一些网上经典的教程供大家学习。正则表达式使用单个字符串来描述匹配一系列匹配某个句法规则的字符串。 原文收录在我的 GitHub博客 (https://github.com/jawil/blog) ,喜欢的可以关注最新动态,大家一起多交流学习,共同...

    APICloud 评论0 收藏0
  • PHP算法之判断是否是质数

    摘要:质数的定义质数又称素数。一个大于的自然数,除了和它自身外,不能整除其他自然数的数叫做质数否则称为合数。实现思路循环所有可能的备选数字,然后和中间数以下且大于等于的整数进行整除比较,如果能够被整数,则肯定不是质数,相反,就是质数。 showImg(https://farm5.staticflickr.com/4256/35315926115_fcde5c8234_c.jpg); 质数的定...

    Eidesen 评论0 收藏0

发表评论

0条评论

Cruise_Chan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<