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

関数を使って素数を判定するC++プログラムの作成方法


素数とは、1より大きい整数であり、約数が「1」と「その数自身」のみである数のことを指します。言い換えれば、素数はそれ以外のどの整数でも割り切ることができません。

最初のいくつかの素数は以下の通りです。

2, 3, 5, 7, 11, 13 ,17

本記事では、関数を使用してある数値が素数かどうかを判定するC++プログラムについて解説します。

サンプルコード

#include <iostream>
using namespace std;
void isPrime(int n) {
    int i, flag = 0;
    for(i=2; i<=n/2; ++i) {
        if(n%i==0) {
            flag=1;
            break;
        }
    }
    if (flag==0)
    cout<<n<<" is a prime number"<<endl;
    else
    cout<<n<<" is not a prime number"<<endl;
}
int main() {
    isPrime(17);
    isPrime(20);
    return 0;
}

実行結果

17 is a prime number
20 is not a prime number

プログラムの仕組み

このプログラムでは、isPrime() 関数を使って、引数として渡された数値 n が素数かどうかを判定します。判定の流れは以下の通りです。

1. 割り算による判定

2から n/2(n の半分)までの範囲でループを実行し、それぞれの値で n を順番に割っていきます。もし割り算の剰余が0になった場合、それは n が1でも自身でもない別の数で割り切れることを意味します。つまり、その数は素数ではないため、フラグ変数に1を設定し、break 文でループを抜け出します。該当するコード部分は以下の通りです。

for(i=2; i<=n/2; ++i) {
    if(n%i==0) {
        flag=1;
        break;
    }
}

2. フラグ変数による結果の出力

ループ終了後、フラグ変数の値を確認します。flag の値が0のまま(一度も割り切れなかった)であれば、その数は素数であることが分かり、その旨を出力します。逆に flag の値が1に変更されていれば、その数は素数ではないため、そう表示します。

if (flag==0)
cout<<n<<" is a prime number";
else
cout<<n<<" is not a prime number";

main() 関数からの呼び出し

main() 関数内では、isPrime() 関数に対して17と20という2つの異なる値を渡して呼び出しています。これにより、それぞれの数値が素数かどうかの判定結果が出力されます。

isPrime(17);
isPrime(20);

実行結果を見ると、17は素数として、20は素数ではない(2や4などで割り切れるため)として正しく判定されていることが確認できます。


  1. Pythonで素数を判定するプログラムの書き方を徹底解説

    はじめに この記事では、「与えられた数値が素数かどうかを判定する」という問題に対する解決策を、Pythonのコード例とともにわかりやすく解説します。 問題の概要 問題設定:ある数値が与えられたとき、その数が素数であるかどうかを判定するプログラムを作成します。 まず「素数」の定義をおさらいしましょう。1より大きい正の整数のうち、1とその数自身以外に約数を持たない数を素数(そすう)と呼びます。たとえば、2、3、5、7などはそれ以外の約数を持たないため、素数です。 プログラムの考え方 今回作成するプログラムでは、入力された数値が素数かどうかを以下の手順で判定します。 1以下の数値は素数ではない

  2. 【Python入門】数値が素数かどうかを判定するプログラムの書き方

    この記事では、ユーザーが入力した数値(1より大きい整数)が素数かどうかを判定するPythonプログラムを紹介します。サンプルコードと実行結果、処理の流れを丁寧に解説しているので、Python初心者の方でも理解しやすい内容になっています。素数とは?素数とは、1より大きい正の整数のうち、約数が1とその数自身の2つしか存在しない数のことです。たとえば、2・3・5・7・11などは約数が1と自分自身だけであるため素数です。一方、4や6のように1と自分自身以外の約数を持つ数は「合成数」と呼ばれます。素数判定プログラムのサンプルコード# 入力された数値が素数かどうかを判定するPythonプログラム # ユ