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

ホーム › >>

Pythonで平方数を判定する

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

Pythonで平方数を判定する方法を説明します。この記事を通じて平方数の判定する方法と、n以下の平方数の調べる方法をを学びましょう。

Pythonで平方数を判定するには以下の2つの方法があります。

  • 累乗を使用して平方数を判定
  • 平方根を使用して平方数を判定

Pythonで平方数とは

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

平方数とは、一般的には整数の自乗で表される非負整数のことである。ただし広義の意味では有理数の二乗であれば平方数という

Pythonにおける平方数の概念は上記と同じです。Pythonにおける平方数とは、自然数の平方に等しい整数のことです。これは、Pythonでの平方数を見つけるのに役立つ最初のキーです。

Pythonで平方数とは

そして、平方数の平方根は自然数です。これは、Pythonで平方数を見つけるのに役立つ2番目のキーです。

累乗を使用して平方数を判定

Pythonで平方数を判定する1番目の方法は、平方数が自然数の平方に等しいという概念を使用することです。

つまり、任意の自然数について、2 乗が与えられた数と等しい自然数を見つけることができれば、その数は平方数であることです。

その特徴を使って平方数を判定する関数を作りましょう。

def find_square_number(n):
#flag = 1 => 平方数である
#flag = 0 => 平方数ではない

flag = 0;
#n以下の数値の中に、その数の2乗がnと等しい数があるか確認
if any(i**2 == n for i in range(n+1)):
flag = 1
return flag
  • any()関数は、指定されたiterableの中に指定された要素があるかどうかを確認するために使用されます。
  • Pythonのfor i in range関数は、指定された反復回数でループを作成するのに役立ちます。詳しくは、Pythonでのfor rangeループをご覧ください。
  • 上コードを省略するため上記ではlist comprehensionを使用します。Pythonでのlist comprehensionをご覧ください。

次のように、この関数を呼び出して、入力プしたnが平方数かどうかを確認できます。

def find_square_number(n):
#flag = 1 => 平方数である
#flag = 0 => 平方数ではない

flag = 0;
#n以下の数値の中に、その数の2乗がnと等しい数があるか確認
if any(i**2 == n for i in range(n+1)):
flag = 1
return flag


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

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

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

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

>> 自然数を入力ください: 4
4 は平方数である

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

>> 自然数を入力ください: 16
16 は平方数である

>> 自然数を入力ください: 25
25 は平方数である

平方根を使用して平方数を判定

Pythonで平方数を判定する2つ目の方法は、その数の平方根が自然数であるという性質を利用することです。

つまり、任意の数について、その平方根が自然数である場合、その数は平方数であるということです。

平方根が自然数であるかどうか判定するために、is_integer()の関数を使いましょう。

それで、平方根を使用して平方数を判定する方法を以下のように実装します。

def find_square_number_2(n):
#flag = 1 => 平方数である
#flag = 0 => 平方数ではない

flag = 0;
#平方根が自然数であるか確認
if (n ** .5).is_integer(): ## if (math.sqrt(n)).is_integer():
flag = 1
return flag

次のように、この関数を呼び出して、入力したnは平方数かどうか確認できます。

def find_square_number_2(n):
#flag = 1 => 平方数である
#flag = 0 => 平方数ではない

flag = 0;
#平方根が自然数であるか確認
if (n ** .5).is_integer(): ## if (math.sqrt(n)).is_integer():
flag = 1
return flag

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

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

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

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

>> 自然数を入力ください: 4
4 は平方数である

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

>> 自然数を入力ください: 16
16 は平方数である

>> 自然数を入力ください: 25
25 は平方数である

n以下の平方数を調べる

上記の2つの方法のいずれかを使用して、n以下の平方数をリストアップができます。

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

def find_square_number_2(n):
#flag = 1 => 平方数である
#flag = 0 => 平方数ではない

flag = 0;
#平方根が自然数であるか確認
if (n ** .5).is_integer(): ## if (math.sqrt(n)).is_integer():
flag = 1
return flag

n = int(input(">> 任意数を入力ください "))

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

結果:

>> 任意数を入力ください: 10
[0, 1, 4, 9]

>> 任意数を入力ください: 20
[0, 1, 4, 9, 16]

まとめ

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

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

URL Link

https://laptrinhcanban.com/ja/python/nhap-mon-lap-trinh-python/so-trong-python/kiem-tra-so-chinh-phuong-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.