約数の数を知りたいなあ、という時にすぐ使えるようにメモ。
ソースコード
# N の約数をすべて求める関数 def calc_divisors(N): # 答えを表す集合 res = [] # 各整数 i が N の約数かどうかを調べる for i in range(1, N + 1): # √N で打ち切り if i * i > N: break # i が N の約数でない場合はスキップ if N % i != 0: continue # i は約数である res.append(i) # N ÷ i も約数である (重複に注意) # N=9 i=3みたいな時に3を2個登録しないように重複回避 if N // i != i: res.append(N // i) # 約数を小さい順に並び替えて出力 res.sort() return res # ここに約数の数を知りたい数字を入れる print(calc_divisors(1024))
参考サイト
こちらからお借りしました↓
algo-method.com