C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で素数を判定する2つの方法:forループと関数を使った実装例

素数とは、1とその数自身以外に約数を持たない自然数のことです。本記事では、C#を使って素数を判定する2つの代表的な方法を、サンプルコード付きでわかりやすく解説します。

方法1:forループを使って素数を判定する

まずは、forループで1からその数まで順番に割り算を行い、約数の個数をカウントするシンプルな方法です。約数がちょうど2つ(1と自分自身)であれば、その数は素数であると判定できます。

using System;
namespace Program {
    class Demo {
        public static void Main() {
            int n = 7;
            int a;
            a = 0;
            for (int i = 1; i <= n; i++) {
                if (n % i == 0) {
                    a++;
                }
            }
            if (a == 2) {
                Console.WriteLine("Prime Number");
            } else {
                Console.WriteLine("Not a Prime Number");
            }
            Console.ReadLine();
        }
    }
}

実行結果

Prime Number

この例では n = 7 を判定しています。7の約数は1と7のみなので、カウント変数 a が2になり、「Prime Number(素数です)」と出力されます。

方法2:関数を使って素数を判定する

次に、判定処理を独立した関数に切り出す方法を紹介します。処理をメソッド化することで、コードの再利用性が高まり、プログラム全体の構造も整理しやすくなります。

using System;
namespace Program {
    class Demo {
        static void Main(string[] args) {
            int n = 7;
            int res = primeFunc(n);
            if (res == 0) {
                Console.WriteLine("Not a prime number", n);
            } else {
                Console.WriteLine("Prime number", n);
            }
            Console.Read();
        }
        private static int primeFunc(int n) {
            int i;
            for (i = 2; i <= n - 1; i++) {
                if (n % i == 0) {
                    return 0;
                }
            }
            if (i == n) {
                return 1;
            }
            return 0;
        }
    }
}

実行結果

Prime number

このprimeFuncメソッドでは、2から n-1 までの数で順に割り切れるかをチェックします。途中で1つでも割り切れる数が見つかれば即座に0(素数ではない)を返し、最後まで割り切れなければ1(素数である)を返します。

補足:判定処理を高速化するポイント

上記のコードは理解しやすい反面、大きな数を扱う場合には非効率です。実際には、約数のペアは必ず√n以下に存在するという性質を利用して、ループ範囲を「i <= Math.Sqrt(n)」までに限定することで、計算量を大幅に削減できます。また、偶数は事前に除外すればさらに高速化が可能です。

まとめ

C#で素数を判定するには、①forループで約数をカウントする方法と、②判定ロジックを関数として切り出す方法があります。学習用途では前者、実務や再利用を意識するなら後者がおすすめです。パフォーマンスが必要な場面では、平方根までの探索など最適化手法もあわせて検討してみてください。

  1. Pythonで素数を見つける3つの方法を徹底解説【初心者向け】

    はじめに:素数とは?まず、素数とは何かを確認しておきましょう。素数とは、1とその数自身という、ちょうど2つの整数でしか割り切れない正の整数のことです。なお、1は素数には含まれません。代表的な素数としては、2、3、5、7、11などが挙げられます。この記事では、Pythonを使って素数を見つけるための3つの方法を、サンプルコードと実行結果とともに段階的に解説していきます。それぞれの方法で処理速度や効率がどう変わるのかにも注目しながら読み進めてください。方法1:シンプルなforループを使う最も基本的なのは、ネストしたforループ(二重ループ)を使う方法です。外側のループで2から指定した数値未満までの

  2. Windows 8のパスワードを忘れたときの対処法4選|紛失したパスワードを復元する方法

    Windows 8のパスワードを忘れてしまうトラブルは、多くのフォーラムで頻繁に議論される定番の悩みとなっています。急いでパソコンを使いたいのにログインできない――この状況に、多くのWindows 8ユーザーが頭を抱えています。そこで本記事では、同じ状況に陥ったときのために、Windows 8のパスワードをリセットするシンプルかつ効果的な方法をご紹介します。 Windows 8のパスワードを復元する方法を解説する前に、まずWindows 8のパスワードに関する基礎知識をおさらいしておきましょう。 一般的に、Windowsでは「管理者アカウント」「標準ユーザーアカウント」「ゲストアカウント」の3