Pythonで数値が完全数かどうかを判定するプログラム
「完全数(Perfect Number)」とは、その数自身を除くすべての正の約数の合計が、元の数と等しくなるような数のことです。たとえば、6 の正の約数は 1・2・3 であり、1 + 2 + 3 = 6 となるため、6 は完全数です。ほかにも 28(1 + 2 + 4 + 7 + 14)などが代表的な例として挙げられます。
ある数が完全数であるかどうかを判定するには、シンプルな for ループを使用するのが最も基本的な方法です。
以下にその実装例を示します。
サンプルコード
n = 6
my_sum = 0
for i in range(1, n):
if(n % i == 0):
my_sum = my_sum + i
if (my_sum == n):
print("The number is a perfect number")
else:
print("The number is not a perfect number")
出力結果
The number is a perfect number
コードの解説
まず、判定対象となる数を変数
nに代入します。約数の合計を格納する変数
my_sumを 0 で初期化します。range(1, n)を使って 1 から n 未満までの整数を順に取り出し、n % i == 0(割り切れる場合)であればそれが約数なので、その値を合計に加算していきます。ループ終了後、合計値が最初に定義した
nと一致すれば、その数は完全数であると判断されます。判定結果に応じたメッセージがコンソールに出力されます。
-
Pythonで与えられた数値がフィボナッチ数かどうかを判定する方法
本記事では、与えられた数値がフィボナッチ数であるかどうかを判定する問題の解決策について解説します。 問題の定義 ある数値 n が与えられたとき、その数値がフィボナッチ数であるかどうかを判定します。 第 n 項のフィボナッチ数は、直前の2つのフィボナッチ数の和として定義されることは広く知られています。しかし、フィボナッチ数列には漸化式以外にも興味深い数学的性質があります。 フィボナッチ数の判定条件 ある数値 n がフィボナッチ数であるのは、「5×n² + 4」または「5×n² − 4」のいずれかが完全平方数であるとき、かつそのときに限る この性質を利用すれば、フィボナッチ数列を実際に生成しなくて
-
【Python】与えられた数がフィボナッチ数かどうかを判定する方法を解説
本記事では、以下の問題文に対する解決策について詳しく学んでいきます。 問題の定義 数値 n が与えられたとき、その数がフィボナッチ数であるかどうかを判定します。 ご存知のとおり、n番目のフィボナッチ数は「直前の2つのフィボナッチ数の和」として定義されます。しかし、この漸化式以外にも、フィボナッチ数には興味深い数学的な性質が存在します。 フィボナッチ数の判定に使える重要な性質 ある数 n がフィボナッチ数であるのは、次の条件が成り立つ場合、かつその場合に限られます。 5×n² + 4 が完全平方数である または 5×n² − 4 が完全平方数である つまり、上記のどちらか一方(または両方)が