我正在尝试计算以下形式的数字(一些例子):
这不是一道作业题,我只是在研究质数,但是有很多信息对我来说都有些难以理解(傅里叶变换)。最初,我只是使用了类似于以下函数:
2 ^ 7 - 1
,2 ^ 31 - 1
,2 ^ 127 - 1
等等。这不是一道作业题,我只是在研究质数,但是有很多信息对我来说都有些难以理解(傅里叶变换)。最初,我只是使用了类似于以下函数:
public static bool IsPrime(int candidate)
{
if ((candidate & 1) == 0)
{
return candidate == 2;
}
for (int i = 3; (i * i) <= candidate; i += 2)
{
if ((candidate % i) == 0)
{
return false;
}
}
return candidate != 1;
}
当数字变得太大时,那种方法就行不通了。我还查阅了埃拉托斯特尼筛法,但显然只适用于规模较小的数字。
澄清一下,我不是要编写一个程序来查找质数,而是要确定给定的数字是否为质数。我正在研究.NET Framework中的BigInteger结构,如果我能写出一个足够高效的算法(即使需要几天时间),它看起来很有前途。
我不确定在这种情况下数学证明是否更好,但与编程相比,我对该领域的知识不多,但如果有一种专门针对这种数字的证明,那肯定值得研究。
谢谢。
2^p-1
) 的信息。 - Mat