2017年12月14日木曜日

学習環境

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


  1. 2 32 + 1 = 2 32 + 1 + 5 4 · 2 28 - 5 4 · 2 28 = 5 4 · 2 28 + 2 32 - 5 4 · 2 28 - 1 = 2 28 · 5 4 + 2 4 - 5 2 · 2 14 - 1 5 2 · 2 14 + 1 = 2 28 · 641 - 5 · 2 7 + 1 5 · 2 7 - 1 5 2 · 2 14 + 1 = 2 28 · 641 - 641 5 · 2 7 - 1 5 2 · 2 14 + 1 = 641 2 28 - 5 - 2 7 - 1 5 2 - 2 14 + 1

    よって、

    2 32 + 1

    は641を約数にもつ。

コード(Emacs)

Python 3

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

n = 641
m = 2 ** 32 + 1

for t in [n, m]:
    for s in [n, factorint(n)]:
        pprint(s)
        print()
    print()

print(m % n == 0)

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

$ ./sample10.py
641

{641: 1}


641

{641: 1}


True
$

0 コメント:

コメントを投稿