1

是否有一个函数或一个简单的类可以让我检查 c# 中的整数是否是素数?

4

3 回答 3

4

不。

你需要自己写。

一个整数的基本算法是将它除以所有整数,直到它的平方根,并确保总是有余数。

要检查多个数字,可以使用优化算法,例如埃拉托色尼筛

于 2012-08-24T15:36:32.660 回答
3

没有理由拥有标准的素数检查功能。

这是一种昂贵的计算,可以通过不同的方式进行,每种方式对内存和 cpu 都有不同的影响。

它实际上取决于数字的大小和您必须测试其素数的数字序列,因为通常需要存储中间值。

否则说:您选择的解决方案必须适应您的程序和您的确切需求。我建议您首先查看wikipedia(链接归功于 Chris Shain)和现有的库(例如这个用于小整数的库) (归功于 Google 的链接)。

于 2012-08-24T15:39:28.097 回答
1

这是我用于所有项目欧拉问题的那个。

private static bool IsPrime(long number) {
    if (number <= 1) return false;
    for (long i = 2; i <= Math.Sqrt(number); i++) {
        if (number % i == 0)
            return false;
    }
    return true;
}
于 2012-08-24T15:42:25.347 回答