C# で素数を確認する

Syed Hassan Sabeeh Kazmi 2023年10月12日
  1. C# で特定の範囲内の素数をチェックするためのユーザー入力
  2. C# で素数をチェックするには、isPrime ブール値を使用する
  3. C# で再帰を使用して素数をチェックする
C# で素数を確認する

プログラミングでは、1 またはそれ自体以外の因数を持たない 1 より大きい正の整数を見つけるアルゴリズムを作成すると、素数が得られます。 このチュートリアルでは、C# で素数をチェックする 3つのソリューションを紹介します。

C# で特定の範囲内の素数をチェックするためのユーザー入力

C# で特定の範囲内の素数を見つける最も効率的な方法は、for ループと if 条件を使用してアルゴリズムを記述することです。 次の C# プログラムは、特定の範囲で素数を見つけるアルゴリズムを理解するのに役立ちます。

コード例

using System;

class PrimeNumber {
  static void checkPrime(int InputN) {
    int n = 0;

    // algorithm to check prime number
    for (int i = 2; i < (InputN / 2 + 1); i++) {
      if (InputN % i == 0) {
        n++;
        break;
      }
    }

    if (n == 0) {
      Console.Write(InputN + " ");
    }
  }

  static void Main(string[] args) {
    Console.WriteLine("Enter a number to check prime numbers in the given range: ");
    string iN = Console.ReadLine();
    int iNum = Convert.ToInt32(iN);

    Console.WriteLine("Prime numbers less than " + iNum + " are: ");

    // loop for finding every prime number in the given range
    for (int i = 2; i < iNum + 1; i++) {
      checkPrime(i);
    }
  }
}

出力:

Enter a number to check prime numbers in the given range:
30
Prime numbers less than 30 are:
2 3 5 7 11 13 17 19 23 29

C# で素数をチェックするには、isPrime ブール値を使用する

isPrime ブール値を使用して、ユーザーが入力した数値が素数かどうかを確認します。 素数の場合、isPrime の値は true になり、それ以外は false になります。

これは試行分割と呼ばれ、for ループと if-else 条件で構成されます。

コード例:

using System;

public class PrimeNumber {
  public static void Main(string[] args) {
    Console.WriteLine("Enter a number: ");
    var n = int.Parse(Console.ReadLine());
    bool isPrime = true;
    for (var i = 2; i <= Math.Sqrt(n); i++) {
      if (n % i == 0) {
        isPrime = false;
        break;
      }
    }
    if (isPrime == true) {
      Console.WriteLine("It's a prime number.");
    } else {
      Console.WriteLine("It's not prime number");
    }
  }
}

出力:

Enter a number: 19
It's a prime number.

for ループは、n > 1 かつ ni で割り切れない場合、整数 n を素数として定義します。 for ループの出力は、合成数または素数のいずれかになります。

if 条件は、n が他の数で割り切れるかどうかをさらにチェックします。 割り切れる場合、isPrime の値は false になります。 それ以外の場合、true

for ループを実行した後、isPrime の値が true の場合、数値は素数になります。

C# で再帰を使用して素数をチェックする

C# で素数を見つけるためのネイティブ ソリューションです。 C# アルゴリズムは、2 から n - 1 までの数が n を割り切れるかどうかをチェックします。

割り切れる数が見つかった場合、ユーザー定義の数は素数ではないため、n を意味する false を返します。

コード例:

using System;

class CheckPrime {
  static int i = 2;

  // checks if a number is prime
  static bool isPrime(int n) {
    // check this number
    // you can modify this number or make the user set its value thorugh `Console.Readline();`
    n = 7;

    // corner cases
    if (n == 0 || n == 1) {
      return false;
    }

    // Checking Prime
    if (n == i)
      return true;

    // base cases
    if (n % i == 0) {
      return false;
    }
    i++;
    return isPrime(n);
  }

  static void Main() {
    if (isPrime(35)) {
      Console.WriteLine("It is a prime number.");
    } else {
      Console.WriteLine("It is not a prime number.");
    }
  }
}

出力:

It is a prime number.
Syed Hassan Sabeeh Kazmi avatar Syed Hassan Sabeeh Kazmi avatar

Hassan is a Software Engineer with a well-developed set of programming skills. He uses his knowledge and writing capabilities to produce interesting-to-read technical articles.

GitHub