【发布时间】:2012-09-24 19:19:31
【问题描述】:
考虑以下方法:
public static boolean isPrime(int n) {
return ! (new String(new char[n])).matches(".?|(..+?)\\1+");
}
我从来都不是正则表达式专家,所以谁能完整地解释一下这种方法实际上是如何工作的? 此外,与其他可能的确定整数是否为素数的方法相比,它是否有效?
【问题讨论】:
-
好的,我收回我的评论。真的很奇怪。
-
@NullUserException 哦,谢谢你的链接——我想我会看看是否有人能回答我问题的第二部分。
-
@A.R.S.我非常怀疑它是否有效。
-
@Foon - 它不实现了 Eratosthenes 的筛子。它详尽地检查每个除数。 (例如,如果 2 失败,它仍然会尝试 4。)