学習環境
- Surface 3 (4G LTE)、Surface 3 タイプ カバー、Surface ペン(端末)
- Windows 10 Pro (OS)
- Nebo(Windows アプリ)
- iPad Pro + Apple Pencil
- MyScript Nebo(iPad アプリ)
- 参考書籍
数学読本〈6〉線形写像・1次変換/数論へのプレリュード/集合論へのプレリュード/εとδ/落ち穂拾い など(松坂 和夫(著)、岩波書店)の第23章(数学の中の女王 - 数論へのプレリュード)、23.2(合同式)、nを法とする既約剰余類、オイラーの関数、問9.を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3 from sympy import gcd for n in range(2, 21): count = 0 for m in range(1, n): if gcd(n, m) == 1: count += 1 print(f'φ({n}) = {count}')
入出力結果(Terminal, Jupyter(IPython))
$ ./sample9.py φ(2) = 1 φ(3) = 2 φ(4) = 2 φ(5) = 4 φ(6) = 2 φ(7) = 6 φ(8) = 4 φ(9) = 6 φ(10) = 4 φ(11) = 10 φ(12) = 4 φ(13) = 12 φ(14) = 6 φ(15) = 8 φ(16) = 8 φ(17) = 16 φ(18) = 6 φ(19) = 18 φ(20) = 8 $
HTML5
<pre id="output0"></pre> <button id="run0">run</button> <button id="clear0">clear</button> <script src="sample9.js"></script>
JavaScript
let pre0 = document.querySelector('#output0'), btn0 = document.querySelector('#run0'), btn1 = document.querySelector('#clear0'), p = (x) => pre0.textContent += x + '\n', is_prime = (n) => { for (let i = 2; i <= Math.sqrt(n); i += 1) { if (n % i === 0) { return false; } } return true; }, gcd = (n, m) => { let t = 1, l = Math.min(n, m); for (let i = 2; i <= l; i += 1) { if (n % i === 0 && m % i === 0) { t = i; } } return t; } let output = () => { for (let n = 2; n <= 20; n += 1) { let count = 0; for (let m = 1; m <= n - 1; m += 1) { if (gcd(n, m) === 1) { count += 1; } } p(`φ(${n}) = ${count}`); } }; btn0.onclick = output; btn1.onclick = () => pre0.textContent = ''; output();
0 コメント:
コメントを投稿