首先申明,思想来自下面两个网页
http://coolshell.cn/?p=2704
http://blog.stevenlevithan.com/archives/algebra-with-regexes
我自己改造成python代码并加了下注解,遂成。
也许数据大了性能有问题,但确实太酷了。
#coding=utf-8
import re
def isPrime(num):
pa = re.compile(r"""^1?$ #匹配空串或1
|
^
(11+?)#匹配1再加1个或多个1(这里是不贪婪的,可能贪婪的还需要往后看效率底点)
\1+ #将上述匹配到的组再重复一次或多次,这正好是合数的算法
$""",re.VERBOSE)
return pa.match("1"*num) is None
for n in xrange(100):#输出100内的素数
if isPrime(n):
print n,
#coding=utf-8
#判断方程11x + 2y + 5z = 115是否有解
import re
pa = re.compile(r"^(.*)\1{10}(.*)\2{1}(.*)\3{4}$")
ma = pa.match("1"*115)
if ma!=None:
print ma.groups()
分享到:
相关推荐
Python 语言有什么奇技淫巧吗?.docxPython 语言有什么奇技淫巧吗?.docxPython 语言有什么奇技淫巧吗?.docxPython 语言有什么奇技淫巧吗?.docxPython 语言有什么奇技淫巧吗?.docxPython 语言有什么奇技淫巧吗?....
主要介绍了Java编程中使用lambda表达式的奇技淫巧,使用Lambda表达式可以替代只有一个函数的接口实现,告别匿名内部类,代码看起来更简洁易懂,是Java8开始推出的人们期待已久的功能,需要的朋友可以参考下
算法心得-高效算法的奥秘(原书第2版)_带书签_高清_[位运算的奇技淫巧].pdf.
在阐述为什么之前,让我们先来明确Javascript中的两个概念:函数声明和函数表达式: 先来看看什么样的是函数声明: [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 再来看看什么样的是函数表达式: [Ctrl+A ...
zxing.java源码解析 这是一个JavaSE、Android领域的豆知识tips,可以用来碎片化学习和面试。内容主要来源于行业内一大批高质量的优秀公众号,如Hollis、...正则表达式 Git 计算机组成原理(正在填补中……) 言职 附录:
RocketMQ 奇技淫巧之 ServiceLoader 源码解读 抓下来打包成了HTML文件, 方便离线观看
《Python那些事——python的奇技淫巧!》python2.7版本
Git是一个“分布式版本管理工具”,简单的理解版本管理工具:大家在写东西的时候都用过“回撤”这个功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用“回撤”是找不回来的。
收集到的一些src挖掘奇技淫巧
EVAL长度限制突破技巧 命令长度限制突破技巧 Mysql突破换行符的技巧 命令执行WAF绕过技巧 无字母数字Webshell构造技巧
DNS服务作为网络的一种基础架构,在网络中有举足轻重的地位。它担负着整个网络用户计算机的名称解析工作。没有正确的名称解析,服务器就无法识别各客户机。我们日常进行的浏览网页等上网活动,无一例外都在使用DNS...
bash奇技淫巧,长见识
git-tips:Git的奇技淫巧
主要介绍了CSS中边框使用负边距值的奇技淫巧,文中介绍了使用负边距进行布局以及实现重叠等效果的方法,非常之巧妙,需要的朋友可以参考下
移动端Ui自动化上的一些“奇技淫巧”;工作上总结的一些好用的东西在这里分享给大家 : )
Git是一个 “分布式版本管理工具”,简单的理解版本管理工具:大家在写东西的时候都用过 “回撤” 这个 功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用 “回撤” 是找不回来的。...
主要介绍了大幅优化MySQL查询性能的方法,作者根据实际运行时间比对分析了InnoDB等几个重要的MySQL性能优化点,极力推荐!需要的朋友可以参考下
用C实现,必然需要一个结构,结构当中应当有一个指针,指针分配一段内存空间,空间大小根据需要而定,而且必须有另外一个字段记录究竟开辟了多大多长的空间。 大致描述如下: Struct MutableLenArray { Int count...