如何用正则表达式编写程序检测一个数是否为素数?
- 内容介绍
- 文章标签
- 相关推荐
本文共计246个文字,预计阅读时间需要1分钟。
复制作息代码如下:pythonimport re
def is_prime(num): return not re.match(r^1?(11+?)1$, '1' + *num)这段代码使用正则表达式来判断一个数字是否为合数。正则表达式`r^1?(11+?)1$`实际上表示的是所有合数的长度形式的'1'序列。`(11+?)`部分表示一个或多个'11'的组合,这些组合后面跟着一个'1'。这样的正则表达式并不能正确判断合数,它只是一个示例,并不是有效的合数判断方法。
复制代码 代码如下:import re
def is_prime(num):
return not re.match(r"^1?$|^(11+?)\1+$", '1' * num)
这个正则表达式实际上表示所有合数长度的"1"串(还包括特例"1")。
(11+?)表示所有大于等于2的整数,后面接着的\1+表示重复一次以上——这不就是所有合数吗~~
本文共计246个文字,预计阅读时间需要1分钟。
复制作息代码如下:pythonimport re
def is_prime(num): return not re.match(r^1?(11+?)1$, '1' + *num)这段代码使用正则表达式来判断一个数字是否为合数。正则表达式`r^1?(11+?)1$`实际上表示的是所有合数的长度形式的'1'序列。`(11+?)`部分表示一个或多个'11'的组合,这些组合后面跟着一个'1'。这样的正则表达式并不能正确判断合数,它只是一个示例,并不是有效的合数判断方法。
复制代码 代码如下:import re
def is_prime(num):
return not re.match(r"^1?$|^(11+?)\1+$", '1' * num)
这个正则表达式实际上表示所有合数长度的"1"串(还包括特例"1")。
(11+?)表示所有大于等于2的整数,后面接着的\1+表示重复一次以上——这不就是所有合数吗~~

