我正在尝试在我的程序中实现素数类型。在 Mersenne 的指数类型之一中,计算公式为(2 power P) -1
HereP is Prime.
并检查输出是否为素数。
在计算中,我能够获得力量,但在检查素数时,过程是 Hanging 。如果我离开它很长时间,那么它正在被计算。
例如, (2 power 10090) -1 并计算这是否是素数
我正在使用大整数
我正在使用这段代码
int prime1 = CalculatePrime(n);
BigInteger powerPrime = BigInteger.Pow(2, prime1);
bool isPrime = CheckPrime(powerPrime - 1);
private bool CheckPrime(BigInteger num)
{
if (num == 0 || num == 1)
return false;
bool isPrime = true;
for (int j = 2; j < num; j++)
{
if ((num % j) == 0)
{
isPrime = false;
break;
}
}
return isPrime;
}
这是怎么回事 - http://www.dotnetperls.com/prime