【Python】3の倍数かつ5の倍数の数字を判定する方法

Pythonプログラミングは、初心者にもわかりやすく、多くの人に親しまれているプログラミング言語です。

この記事では、Pythonを使って「3の倍数かつ5の倍数の判定をするプログラム」を作成する方法を、初心者向けにわかりやすく解説します。

目次から探す

3の倍数と5の倍数の判定プログラムの書き方

この記事では、3の倍数と5の倍数を判定するプログラムの書き方を解説します。

以下の順序で説明を進めていきます。

入力値の取得

今回はユーザーに値を入力してもらい、その数値が3もしくは5の倍数かどうか判定する流れを説明していきます。

まず、Pythonでは input() 関数を使ってユーザーからの入力を受け取ることができます。

また、 int() 関数を使って文字列を整数に変換します。

num = int(input("整数を入力してください: "))

int()関数を使って入力された文字列を数値に変換しないと計算できないので気をつけましょう。

3の倍数の判定方法

続いては、入力された数値が3の倍数かどうか判定する方法です。

余りを使った判定

3の倍数かどうかを判定する方法の1つは、入力された数を3で割った余りを調べる方法です。

Pythonでは%演算子を使って余りを求めることができます。

if num % 3 == 0:
    print("3の倍数です")
else:
    print("3の倍数ではありません")

3の倍数の数値を3で割ると必ず0になるので、この仕組みを応用すれば3の倍数かどうか判定することが可能です。

基本的にはこちらの方法がおすすめです。

文字列変換を使った判定

もう1つの方法は、入力された数を文字列に変換し、各桁の数字の和が3の倍数であるかどうかを調べる方法です。

3の倍数の数値は、各桁の数値を足し合わせると必ず3の倍数になります。

str() 関数を使って数値を文字列に変換し、 sum() 関数で各桁の数字の和を求めます。

num_str = str(num)
digit_sum = sum(int(d) for d in num_str)

if digit_sum % 3 == 0:
    print("3の倍数です")
else:
    print("3の倍数ではありません")

一応こちらの方法でも可能ですが、先程の方法より複雑な上処理も多いので、特別な事情でもない限りこちらの方法を採用するメリットはありません。

5の倍数の判定方法

続いては5の倍数か判定する方法です。

余りを使った判定

5の倍数かどうかを判定する方法も、3の倍数判定と同じように、入力された数を5で割った余りを調べる方法が一番シンプルかつカンタンです。

if num % 5 == 0:
    print("5の倍数です")
else:
    print("5の倍数ではありません")

文字列変換を使った判定

5の倍数かどうかを判定するもう1つの方法は、入力された数の末尾の数字が0または5であるかどうかを調べる方法です。

str() 関数を使って数値を文字列に変換し、末尾の数字を調べます。

num_str = str(num)
last_digit = num_str[-1]

if last_digit == '0' or last_digit == '5':
    print("5の倍数です")
else:
    print("5の倍数ではありません")

こちらの方法でも可能ですが、わざわざこのような面倒なことしなくても5で割った余りを調べるほうが手軽なので、なにか理由でもない限り、num % 5 == 0の方法を採用しましょう。

3の倍数かつ5の倍数の判定方法

続いて、ここまで紹介した3の倍数かどうか・5のバイスかどうかの判定を組み合わせる方法を見ていきましょう。

論理演算子を使った判定

3の倍数かつ5の倍数であるかどうかを判定する方法は、論理演算子andを使って両方の条件を満たすかどうかを調べます。

if num % 3 == 0 and num % 5 == 0:
    print("3の倍数かつ5の倍数です")
else:
    print("3の倍数かつ5の倍数ではありません")

Pythonではandを用いることで、複数条件全てを満たす条件式を書くことが可能です。

この場合だと、num % 3 == 0が成立し、なおかつnum % 5 == 0が成立する場合にprint("3の倍数かつ5の倍数です")が処理されます。

入れ子構造の条件分岐を使った判定

もう1つの方法は、入れ子構造の条件分岐を使って判定する方法です。

if num % 3 == 0:
    if num % 5 == 0:
        print("3の倍数かつ5の倍数です")
    else:
        print("3の倍数ですが5の倍数ではありません")
else:
    if num % 5 == 0:
        print("5の倍数ですが3の倍数ではありません")
    else:
        print("3の倍数でも5の倍数でもありません")

行数が多くなりますが、分岐するパターンを増やせるため、複雑な条件式を組まないといけないときに便利です。

結果の出力

最後に、入力された数値が3の倍数かつ5の倍数かどうかを判定するプログラムの完成形がこちらです。

num = int(input("整数を入力してください: "))

if num % 3 == 0 and num % 5 == 0:
    print("3の倍数かつ5の倍数です")
else:
    print("3の倍数かつ5の倍数ではありません")

これで、3の倍数かつ5の倍数を判定するプログラムが完成しました。

サンプルコードを少しいじれば、4の倍数かつ7の倍数num % 4 == 0 and num % 7 == 0だったり、10未満の3の倍数num < 10 and num % 3 == 0といった複数条件の処理も可能です。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す