Pythonで完全数を判定する   | プログラミング学習 初心者向け入門ガイド

ホーム › >>

Pythonで完全数を判定する  

記事掲載:https://laptrinhcanban.com/ja

Pythonで奇数・偶数を判定する方法を説明します。この記事を通じてPythonで完全数を判定する関数の作成を学びましょう。

Pythonで完全数とは

ウィキペディアによると、完全数の概念は次のとおりです。

完全数(かんぜんすう、英: perfect number)とは、自分自身が自分自身を除く正の約数の和に等しくなる自然数のことである。

Pythonにおける完全数の概念は上記と同じです。Python では、自分自身が自分自身を除く正の約数の和に等しくなる自然数は完全数であると見なされます。

Pythonの完全数

これは、Pythonで完全な数を見つけるのに役立つキーです。

Pythonで完全数を判定する 

Python では、自分自身が自分自身を除く正の約数の和に等しくなる場合、その数は完全であると見なされます。

したがって、ある数値が完全数かどうかを確認するには、その数値のすべての約数を見つけて合計し、この合計が指定された数値と比較するだけです。

指定された数の約数を見つけるには、その数をそれよりも小さい数で順番に割ります。除算に余りがない場合、その約数が求められる約数になります。

そして、次のようにPythonで完全数チェック関数を作成します。

def find_perfect_num(n):
## flag = 1 => 完全数である
## flag = 0 => 完全数ではない

flag = 0

#約数を調べる
divisor= [i for i in range(1,n) if n % i == 0]

#全ての約数の和を計算
total = 0;
for i in range(len(divisor)):
total += divisor[i]

#比較
if total == n:
flag = 1
return flag
  • Pythonのfor i in range関数は、指定された反復回数でループを作成するのに役立ちます。詳しくは、Pythonでのfor rangeループをご覧ください。
  • 上コードを省略するため上記ではlist comprehensionを使用します。Pythonでのlist comprehensionをご覧ください。

この関数を呼び出し、Pythonで入力された数値が完全数かどうかを判定しましょう。

def find_perfect_num(n):
## flag = 1 => 完全数である
## flag = 0 => 完全数ではない

flag = 0

#約数を調べる
divisor= [i for i in range(1,n) if n % i == 0]

#全ての約数の和を計算
total = 0;
for i in range(len(divisor)):
total += divisor[i]

#比較
if total == n:
flag = 1
return flag


n = int(input(">> 自然数を入力ください: "))
check = find_perfect_num(n);

if check == 1:
print(n,"は完全数である")
else:
print(n,"は完全数ではない")

注意点として入力した数値は自然数でなければなりません。

入力画面と結果は以下のように表示されます。

>> 自然数を入力ください: 5
5 は完全数ではない

>> 自然数を入力ください: 6
6 は完全数である

n以下の完全数を調べる

上記の方法を使用して、n以下の完全数をリストアップができます。

次に、Pythonでn以下の完全数を調べるプログラムを示します。

def find_perfect_num(n):
## flag = 1 => 完全数である
## flag = 0 => 完全数ではない

flag = 0

#約数を調べる
divisor= [i for i in range(1,n) if n % i == 0]

#全ての約数の和を計算
total = 0;
for i in range(len(divisor)):
total += divisor[i]

#比較
if total == n:
flag = 1
return flag

n = int(input(">> 自然数を入力ください: "))

result=[]
for i in range(n):
check = find_perfect_num(i);
if check == 1:
result.append(i)
print(result)

Kết quả:

>> 自然数を入力ください: 10
[0, 6]

>> 自然数を入力ください: 50
[0, 6, 28]

>> 自然数を入力ください: 1000
[0, 6, 28, 496]

まとめ

上記でKiyoshiはPythonで完全数を判定する方法を説明しました。レッスンの内容をよりよく理解するために、各例文を練習をしてください。

そして、次のレッスンでPythonついてもっと学びましょう。

URL Link

https://laptrinhcanban.com/ja/python/nhap-mon-lap-trinh-python/so-trong-python/kiem-tra-so-hoan-hao-trong-python/

この記事は役立つと思ったらいいね!とシェアをお願いします
">

ホーム  › >>

Profile
きよしです!笑

Author: Kiyoshi (Chis Thanh)

Kiyoshi was a former international student in Japan. After graduating from Toyama University in 2017, Kiyoshi is currently working as a BrSE in Tokyo, Japan.