2019年8月6日火曜日

学習環境

中学数学からはじめる暗号入門 ~現代の暗号はどのようにして作られたのか~ (知りたい!サイエンス 141) (関根 章道(著)、技術評論社))の前編(暗号の歴史あれこれ)、第5章(ユークリッドさん、お母さんを助けて)の最大公約数、素因数分解(68ページ)の解答を求めてみる。

1615 = 1547 · 1 + 68 1547 = 68 · 22 + 51 68 = 51 · 1 + 17 51 = 17 · 3 + 0

よって、最大公約数は17。

素因数分解はそれぞれ、

1615 = 5 · 17 · 19 1547 = 7 · 13 · 17

コード

Python 3

#!/usr/bin/env python3
from sympy import pprint, gcd, primefactors

ns = [1615, 1547]

for o in [gcd(*ns)] + [(n, primefactors(n)) for n in ns]:
    pprint(o)
    print()

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

$ ./sample1.py
17

(1615, [5, 17, 19])

(1547, [7, 13, 17])

$ 

0 コメント:

コメントを投稿