2024年5月2日木曜日

パイソンによる与えられた整数の素因数分解を行うプログラム

Python
def prime_factorization(n):
  """
  与えられた整数の素因数分解を行う関数

  Args:
    n: 素因数分解対象の整数

  Returns:
    nの素因数分解結果をリストで返します。
  """
  if n <= 1:
    return []
  primes = []
  for i in range(2, int(n**0.5) + 1):
    while n % i == 0:
      primes.append(i)
      n //= i
  primes.append(n)
  return primes

def main():
  """
  メイン処理
  """
  n = int(input("素因数分解したい整数を 입력하세요: "))
  primes = prime_factorization(n)
  if not primes:
    print(f"{n} は素数です")
  else:
    print(f"{n} の素因数分解: ", end="")
    for i, prime in enumerate(primes):
      if i == len(primes) - 1:
        print(prime)
      else:
        print(f"{prime} * ", end="")

if __name__ == "__main__":
  main()

このコードは、以下の機能を提供します。

  1. 整数を入力する: input() 関数を使用して、ユーザーから整数を 입력받습니다。
  2. 素因数分解を行う: prime_factorization() 関数を使用して、入力された整数の素因数分解を行います。この関数は、以下の処理を行います。
    • 与えられた整数が 1 以下の場合は、空のリストを返します。
    • 2 から √n までの整数を順に試して、割り切れるものがあれば、その素数をリストに追加し、n をその素数で割ります。
    • n が 1 になるまで上記の処理を繰り返します。
    • 最後に、素数リストを返します。
  3. 結果を表示する: 素因数分解結果をコンソールに表示します。
    • n が素数の場合は、n は素数です と表示します。
    • n が合成数の場合は、n の素因数分解: と表示し、続いて素数をスペースで区切って表示します。

このコードは、以下の点に注意して作成されています。

  • シンプルで分かりやすいコードであること
  • 効率的なアルゴリズムを使用していること
  • エラー処理を行っていること

このコードをさらに改善するには、以下のことが考えられます。

  • より大きな整数の素因数分解に対応できるようにする
  • エラーメッセージをより詳細にする
  • コードをより簡潔にする

このコードは、Python で素因数分解を行うための基本的な例です。ご自身のニーズに合わせて、自由に改造してください。

0 件のコメント:

コメントを投稿