1

C#の整数が素数かどうかをチェックできる関数または単純なクラスはありますか?

4

3 に答える 3

4

いいえ。

自分で書く必要があります。

1 つの整数の基本的なアルゴリズムは、それが平方根になるまですべての整数で割り、常に剰余があることを確認することです。

複数の数をチェックするには、エラトステネスのふるいなどの最適化されたアルゴリズムを利用できます。

于 2012-08-24T15:36:32.660 に答える
3

標準のプライムチェック機能を使用する理由はありません。

これはコストのかかる計算であり、さまざまな方法で実行でき、それぞれがメモリとCPUにさまざまな影響を及ぼします。

そして、それは実際には、数値のサイズと素数性をテストする必要のある数値のシーケンスに依存します。これは、通常、格納する中間値があるためです。

別の言い方をすれば、選択するソリューションは、プログラムと正確なニーズに適合させる必要があります。ウィキペディア(リンクについては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 に答える