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

本文介绍了如何利用正则表达式来判断一个数字是否为偶数、奇数、质数或合数。通过将数字转化为1的重复字符串,然后应用特定的正则表达式进行匹配,可以实现这些数学判断。例如,偶数判断通过检查字符串是否由多个11组成,而奇数判断则为其否定情况。质数和合数的判断则更复杂,需要匹配2个及以上重复的11字符串。这种方法适用于非负整数的判断,并且需要读者具备一定的正则表达式基础。
摘要由CSDN通过智能技术生成

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值