C++ における素数の識別

C++Beginner
オンラインで実践に進む

はじめに

この実験では、C++ で与えられた数が素数か合成数かどうかをチェックする方法を学びます。素数とは、1 より大きく、1 とそれ自身以外の任意の数で割り切れない数です。合成数とは、1 より大きく、1 とそれ自身以外の数で割り切れる数です。

isPrime() 関数を定義する

整数を受け取り、その整数が素数かどうかを表すブール値を返す isPrime() 関数を定義します。

#include <iostream>
#include <math.h>

using namespace std;

bool isPrime(int n)
{
    if (n == 1)
        return false; // 1 は素数ではない

    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            return false;
    }

    return true;
}

上記のコードでは、与えられた数が任意の数で割り切れるかどうかをチェックしています。そのような数がなければ、その数は素数です。数が 1 の場合、それは素数ではありません。

main() 関数を書く

ここでは、ユーザーから入力を受け取り、与えられた数が素数か合成数かを判定するために isPrime() 関数を使用する main() 関数を書きます。

int main()
{
    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " ===== Most Efficient Program to determine if the entered number is Prime or not. ===== \n\n";

    cout << " ===== Note: 1 is neither Prime nor Composite. ===== \n\n";

    int n;
    bool prime = false;

    cout << " Enter a positive integer other than 1 :  ";
    cin >> n;

    prime = isPrime(n);

    if (prime)
    {
        cout << "\n\nThe entered number " << n << " is a Prime number.";
    }
    else
    {
        cout << "\n\nThe entered number " << n << " is Composite number.";
    }

    cout << "\n\n\n";

    return 0;
}

プログラムをコンパイルして実行する

次のように g++ コマンドを使用してコードをコンパイルします。

g++ main.cpp -o main

その後、./main コマンドを使用してプログラムを実行します。

./main

プログラムは、1 以外の正の整数を入力するように促しますので、数値を入力してエンターキーを押します。

その後、プログラムは入力された数が素数か合成数かを出力します。

main.cpp の完全なコード

#include <iostream>
#include <math.h>

using namespace std;

bool isPrime(int n)
{
    if (n == 1)
        return false; // 1 は素数ではない

    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            return false;
    }

    return true;
}

int main()
{
    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " ===== Most Efficient Program to determine if the entered number is Prime or not. ===== \n\n";

    cout << " ===== Note: 1 is neither Prime nor Composite. ===== \n\n";

    int n;
    bool prime = false;

    cout << " Enter a positive integer other than 1 :  ";
    cin >> n;

    prime = isPrime(n);

    if (prime)
    {
        cout << "\n\nThe entered number " << n << " is a Prime number.";
    }
    else
    {
        cout << "\n\nThe entered number " << n << " is Composite number.";
    }

    cout << "\n\n\n";

    return 0;
}

まとめ

この実験では、C++ で与えられた数が素数か合成数かをチェックする方法を学びました。与えられた数が 1 とそれ自身以外の数で割り切れるかどうかに基づいて、その数が素数であるかどうかを判定する関数を使用しました。その後、この関数を main() で使用して、ユーザーからの入力を受け取り、その数が素数か合成数かを出力しました。