Python
 Computer >> コンピューター >  >> プログラミング >> Python

指定した範囲内のピタゴラス数(三つ組)をすべて求めるPythonプログラム

指定された範囲内に存在するピタゴラス数(ピタゴラスの三つ組)をすべて求めたい場合、三つ組の値を計算するための専用メソッドを定義しておくと便利です。

ここでは、ユークリッドの公式(a = m² − n²、b = 2mn、c = m² + n²)を利用して、効率よくピタゴラス数を生成する方法を紹介します。

サンプルコード

def pythagorean_triplets(limits) :
    c, m = 0, 2
    while c < limits :
        for n in range(1, m) :
            a = m * m - n * n
            b = 2 * m * n
            c = m * m + n * n
            if c > limits :
                break
            print(a, b, c)
        m = m + 1

upper_limit = 15
print("The upper limit is :")
print(upper_limit)
print("The Pythagorean triplets are :")
pythagorean_triplets(upper_limit)

実行結果

The upper limit is :
15
The Pythagorean triplets are :
3 4 5
8 6 10
5 12 13

処理の流れと解説

  • まず、ピタゴラス数の各要素(a、b、c)を計算するための変数を定義したメソッド pythagorean_triplets を作成します。

  • 内部では mn の2つのパラメータを使い、ユークリッドの公式に基づいて三つ組を順次生成します。

  • 計算結果 c が指定した上限値を超えた時点でループを抜けることで、無駄な計算を避けています。

  • メソッドの外側で上限値となる整数(この例では15)を定義します。

  • その整数を引数として渡してメソッドを呼び出し、条件を満たす三つ組をすべて出力します。

  • 最終的な結果がコンソールに表示されます。上記の例では「3 4 5」「8 6 10」「5 12 13」が該当します。

このように、単純な全探索ではなく公式ベースのアプローチを採ることで、大きな範囲でも高速にピタゴラス数を見つけられるのがポイントです。

  1. 指定した範囲内で3と5の両方で割り切れる数をすべて出力するPythonプログラム

    本記事では、与えられた整数Nの範囲内から、3と5の両方で割り切れる数をすべて出力するPythonプログラムを解説します。実装方法はいくつかありますが、どの方法でも共通して必要になるのが「その数が3と5の両方で完全に割り切れるかどうか」を判定する処理です。 3と5で割り切れる数を出力する基本コード 以下が、指定した範囲内で3と5の両方で割り切れる数をすべて出力するPythonコードです。 lower = int(input(下限を入力してください:)) upper = int(input(上限を入力してください:)) for i in range(lower, upper+1):

  2. Pythonでリスト内のすべての数値を乗算するプログラムの書き方

    この記事では、Pythonを使ってリスト内のすべての数値を掛け合わせる(乗算する)方法を解説します。まず、ユーザーからの入力を受け取るためのリストを3つ作成し、ここでは「走査(トラバース)」という手法を利用します。 基本的な考え方はシンプルです。積を表す変数の初期値を 1 に設定し、リストの先頭から末尾まで要素を順にたどりながら、各数値をひとつずつ積に掛けていきます。すべての要素を処理し終えた時点で、変数にはリスト全体の積が格納されています。 実行例 入力: A=[5,6,3] 出力: 90 説明: 5×6×3 アルゴリズム ステップ1: すべての数値をリスト(lst)に入力する。 ステ