2011-04-29 36 views
4

我发现了一个很好的正则表达式代码,用于检查素数。我想我明白了,但我仍然有点困惑。这里是代码:/^1?$|^(11+?)\1+$/检查素数的正则表达式是如何工作的?

有人可以解释(一步一步)究竟发生了什么与正则表达式代码以及它如何实际上知道如果一个数字是否是质数?

回答

5

基本前提是这个正则表达式检查数字的一个表示(例如5 = 11111)。通过检查某些位置或分组中是否存在(1),它可以将数字标识为主数字。

其他参考:

+0

这是一个真棒写了,但你应该尝试总结或引用它。此类网站的目的是成为寻找信息的资源;如果这些链接消失,你的答案变得毫无用处。 – 2011-04-29 17:13:52

+0

@布莱恩,好点。然而,这个特定的问题是一个确切的重复,我已经要求它被关闭。我只是在此期间为用户提供参考。此外,我的总结对于这样一个有趣的表达是不够的。尽管如此,我做了一个更新。 – 2011-04-29 17:23:39

+0

对不起,如果这是一个愚蠢的...我看着stackoverflow,找不到一个很好的解释1)如何看比特转化为确定如果一个数字是素数和2)如何正确的正则表达式工作.. – 2011-04-29 18:49:15