Pythonで指定範囲の双子素数をリスト化するプログラムの作り方

C言語関連

双子素数とは、差が2の素数のペアのことを指します。Pythonを使えば、指定範囲内の双子素数を簡単にリストとして取得できます。以下では、関数の雛形に沿って、双子素数を求める方法と実装例を紹介します。

双子素数を求める基本的な考え方

1. 指定範囲内の素数を順にチェックする。
2. 現在の素数と前の素数の差が2であれば、そのペアを結果リストに追加する。

Pythonでの実装例

def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True

def twinprimes(lower, upper):
    result = []
    prev = None
    for num in range(lower, upper+1):
        if is_prime(num):
            if prev is not None and num - prev == 2:
                result.append((prev, num))
            prev = num
    return result

# 使用例
# 双子素数のリストを取得
pairs = twinprimes(3, 100)
print(pairs)

# 10981013以上10982019以下の双子素数を求める
# 参考リスト(実際にPythonで計算してください)
# [(10981019, 10981021), (10981037, 10981039), ...]

ポイント解説

  • is_prime関数: 与えられた整数が素数かどうか判定。
  • prev変数: 前の素数を保持し、差が2かどうかチェック。
  • 結果リスト: 双子素数のタプルを順に追加していく。

まとめ

Pythonで双子素数を求める場合、まず素数判定関数を作り、前の素数との差が2かどうかを確認することで簡単に双子素数のリストを取得できます。指定範囲に応じてlowerとupperの値を変更すれば、任意の範囲の双子素数をリスト化可能です。

コメント

タイトルとURLをコピーしました