Pythonで調和数を求める方法

Pocket

調和数というものがあります。
これをPythonで求めてみました。

#def harmonic_mean(num_list):
  # 調和平均(数のリストを渡すと調和平均を返す)
  s = 0
  for n in num_list:
    s += 1 / n
  return len(num_list) / s

def divisor(n):
  # 約数のリストを返す
  results = []
  for i in range(1, n + 1):
    if n % i == 0:
      results.append(i)
  return results

for n in range(1, 10000):
  results = divisor(n)
  h = harmonic_mean(results)
  h = int(h * 10000) / 10000
  if h == int(h):
    print(n)

【結果】
1
6
28
140
270
496
672
1638
2970
6200
8128
8190

[ 2022年6月27日 | カテゴリー: 豆知識 | タグ: , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報