一个很古老的奇技淫巧是把一个数编码为一进制(用 n 个连写的 1 代表 n,例如用 11 代表 2,用 111111 代表 6 ),然后用正则表达式 ^1?$|^(11+)\1+$ 判断这个数是否 不是 质数。
^1?$|^(11+)\1+$
然而这样做十分慢。我在一个人的 blog 下指出这个正则表达式判断是否不是质数是非常慢的,但是他说他的测试表明正则表达式 反而更快,这怎么可能呢?
答案在 blog 正文里面:链接到 我的博文,链接到 jawil 的博文。
注:我的博文是在我对他的博文的评论中有感而发写出的,我的博文是英语的,他的博文是汉语的,大家可以自行选择。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/365485
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.