2017年12月8日金曜日

学習環境

代数系入門 (松坂 和夫(著)、岩波書店)の第1章(整数)、5(素数、素因数分解)、問題6.を取り組んでみる。


  1. 58800 = 2 2 · 14700 = 2 4 · 3675 = 2 4 · 5 · 735 = 2 4 · 5 2 · 147 = 2 4 · 5 2 · 7 · 21 = 2 4 · 5 2 · 7 2 · 3 = 2 4 · 3 · 5 2 · 7 2
    τ 58800 = 4 + 1 1 + 1 2 + 1 2 + 1 = 5 · 2 · 3 · 3 = 90
    σ 58800 = 2 4 + 1 - 1 2 - 1 · 3 1 + 1 - 1 3 - 1 · 5 2 + 1 - 1 5 - 1 · 7 2 + 1 - 1 7 - 1 = 31 · 8 2 · 124 4 · 342 6 = 31 · 124 · 57 = 219108

コード(Emacs)

Python 3

#!/usr/bin/env python3
from sympy import pprint, factorint
import functools

n = 58800

ps = factorint(n)
pprint(factorint(n))

pprint(functools.reduce(lambda x, y: x * y, map(lambda v: v + 1, ps.values())))

pprint(functools.reduce(lambda x, y: x * y,
                        [(p ** (k + 1) - 1) / (p - 1) for p, k in ps.items()]))

入出力結果(Terminal, Jupyter(IPython))

$ ./sample6.py
{2: 4, 3: 1, 5: 2, 7: 2}
90
219108.0
$

0 コメント:

コメントを投稿