数値が素数かどうかを判定するBashプログラムの書き方
Bash(GNU bash)は、Unix系オペレーティングシステムで広く利用されているコマンド言語兼シェルスクリプトのコマンドラインインタプリタです。Brian Foxによって設計され、従来のBourneシェル(sh)を置き換えるフリーソフトウェアとして1989年に初めてリリースされました。現在では、LinuxやmacOSなど多くのOSで標準のログインシェルとして採用されています。
素数とは、1とその数自身という2つの約数しか持たない正の整数のことです。例えば、2、3、5、7、11、13、17、19、23、29などが該当します。
この記事では、与えられた数値が素数であるかどうかを判定するBashスクリプトの作成方法を解説します。
問題の定義
入力 : 1つの整数
出力 : 判定結果に応じて「その数は素数です」または「その数は素数ではありません」
例 :
入力 : 23
出力 : その数は素数です
アルゴリズム
ステップ1 − ループ変数 i を使い、2 から n/2 まで繰り返す。
ステップ2 − number が i で割り切れた場合は「その数は素数ではありません」と表示し、flag を 1 に設定する。
ステップ3 − flag が 1 以外の場合は「その数は素数です」と表示する。
ステップ4 − 終了する。
Bashプログラム
number=53
i=2
flag=0
while test $i -le `expr $number / 2`
do
if test `expr $number % $i` -eq 0
then
flag=1
fi
i=`expr $i + 1`
done
if test $flag -eq 1
then
echo "The number is Not Prime"
else
echo "The number is Prime"
fi
実行結果
The number is Prime
プログラムの仕組み
このスクリプトでは、変数 number に判定対象の数値(53)を代入しています。変数 i は 2 から始まり、number / 2 に達するまで1ずつ増加していきます。各ループ内で expr $number % $i により剰余を計算し、剰余が 0(割り切れた場合)であれば flag を 1 に設定します。
ループ終了後、flag の値を確認します。flag が 1 であれば途中で割り切れたことになるため素数ではなく、flag が 0 のままなら 1 とその数自身以外に約数が存在しない、つまり素数であると判定できます。
なお、この方法は n/2 まで調べるアプローチですが、実際には √n まで確認すれば十分です。大きな数値を扱う場合は判定範囲を sqrt(n) まで狭めることで、処理効率を大幅に向上させることができます。
-
Pythonで素数を判定するプログラムの書き方を徹底解説
はじめに この記事では、「与えられた数値が素数かどうかを判定する」という問題に対する解決策を、Pythonのコード例とともにわかりやすく解説します。 問題の概要 問題設定:ある数値が与えられたとき、その数が素数であるかどうかを判定するプログラムを作成します。 まず「素数」の定義をおさらいしましょう。1より大きい正の整数のうち、1とその数自身以外に約数を持たない数を素数(そすう)と呼びます。たとえば、2、3、5、7などはそれ以外の約数を持たないため、素数です。 プログラムの考え方 今回作成するプログラムでは、入力された数値が素数かどうかを以下の手順で判定します。 1以下の数値は素数ではない
-
【Python入門】数値が素数かどうかを判定するプログラムの書き方
この記事では、ユーザーが入力した数値(1より大きい整数)が素数かどうかを判定するPythonプログラムを紹介します。サンプルコードと実行結果、処理の流れを丁寧に解説しているので、Python初心者の方でも理解しやすい内容になっています。素数とは?素数とは、1より大きい正の整数のうち、約数が1とその数自身の2つしか存在しない数のことです。たとえば、2・3・5・7・11などは約数が1と自分自身だけであるため素数です。一方、4や6のように1と自分自身以外の約数を持つ数は「合成数」と呼ばれます。素数判定プログラムのサンプルコード# 入力された数値が素数かどうかを判定するPythonプログラム # ユ