【RegExp】利用正则进行需要整除操作的判断,如:奇偶性,质数合数
来源:互联网 发布:辽宁大学法学院知乎 编辑:程序博客网 时间:2024/06/15 19:19
利用正则表达式可以来进行某些需要整除操作的判断,例如:奇偶性,质数合数等。
PS:本文建议有一定正则基础的看,需要了解基本的正则,回溯,贪心等。
奇偶性
判断偶数:首先把数字n转化为重复n次1的字符串,然后通过正则的匹配判断该字符串是否是多个或则0个(0也是偶数)重复的11字符串。
function isEven(n) { return /^(11)*$/.test('1'.repeat(n));}isEven(0); // trueisEven(1); // falseisEven(2); // true
PS:当然,由于repeat的原因仅限于非负整数的判断。
判断奇数:奇数和偶数互逆,加一个非就行了。
function isOdd(n) { return !/^(11)*$/.test('1'.repeat(n));}isEven(0); // falseisEven(1); // trueisEven(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
- 【RegExp】利用正则进行需要整除操作的判断,如:奇偶性,质数合数
- 质数、合数快速判断
- 素数/质数/合数的定义
- 利用正则表达式 进行字符的判断
- 找出一个合数的最大质数因子
- 素数(质数)与合数的研究
- 利用按位与(&)判断数字的奇偶性
- 判断n的奇偶性
- 质数与合数系列——素数判断
- 利用JavaScript和正则表达式进行丰富的日期判断
- 利用JavaScript和正则表达式进行丰富的日期判断
- C++进行质数判断
- C++进行质数判断
- 常用的RegExp正则表达式判断 数字\字母\中文 大全
- 质数,素数,合数
- 质数 合数 互质
- 质数与合数
- 质数还是合数?
- Simplify3D 4.0.0 Win32_64 2CD
- Android 5.0特征补充3-RecyclerView、CardView、SwipeRefreshLayout、ToolBar
- Apache重写规则参数
- 使用Apereo Cas 5.1.3的Restful接口实现SSO及TGC分析
- 从DefaultStrategiesHelper 开始分解spring-ws-core的实现
- 【RegExp】利用正则进行需要整除操作的判断,如:奇偶性,质数合数
- TensorFlow高效读取数据的方法
- Java集合总览
- android中弹出输入法,内容上移的问题
- 自定义Hbasesink实现自定义rowkey及实时传输数据库数据至大数据平台
- 【python】常见异常及try语句
- 看黑科技如何助白娘子逃出雷锋塔!
- 一分钟了解"matlab绘3D图_mesh和surf以及其区别"
- Android studio 上传到 GitHub