プログラムに素数の種類を実装しようとしています。メルセンヌの指数タイプの1つでは、計算式は(2 power P) -1
HereでP is Prime.
あり、出力が素数であることを確認します。
計算では、パワーを得ることができますが、素数をチェックしている間、プロセスはハングしています。そして、私がそれを非常に長い間放置すると、それは計算されています。
例は、(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