一个很古老的奇技淫巧是把一个数编码为一进制(用 n 个连写的 1 代表 n,例如用 11 代表 2,用 111111 代表 6 ),然后用正则表达式 ^1?$|^(11+)\1+$ 判断这个数是否 不是质数。然而这样做十分慢。我在一个人的 blog 下指出这个正则表达式判断是否不是质数是非常慢的,但是他说他的测试表明正则表达式反而更快,这怎么可能呢?阅读原文以详细了解。我的博文是在我评论关于正则表达式的博文中有感而发写出的,从理论、实践的角度说明为何不应该使用这个方法。关于启发我的博文,请移步 https://github.com/jawil/blog/issues/20