木田祐司:初等整数論

作成日:2022-11-16
最終更新日:

概要

まえがきから引用する。

本書は整数と多項式に関する入門書である.

プログラムの説明

問題の解答は p.185 から始まる。このページに「プログラム例は朝倉書店の web ページに掲載した.」とある。 以下アクセス方法が書かれているのでこの通りたどると、拡張子が lzh のファイルがある。今となっては lzh ファイルは珍しい。 解凍ソフトである Lhaplus をインストールしてなんとかファイルを見る。ところがコメントがほとんどない。困った。 自力で解析するしかない。以下はプログラム名と答の対照表である。

プログラム名備考
binespsg.c答 3.102符号付き 2 進展開
crthard.c答 3.115連立合同式の解
euclid.c答 2.15ユークリッドの互除法
exeuclid.c答 2.18拡張ユークリッドの互除法
genshi10.c答 3.11410 が原始根となる素数
genshi2.c答 3.1111000 以下の素数の最小原始根
jsymbol2.c答 4.28平方剰余記号(ヤコビ記号)の計算
modinv.c答 3.58`ax -= 1 mod m` となる整数 `x` を一つ見つけるプログラム
modpow1.c答 3.68繰り返し 2 乗法によって `a^n mod m` を計算するプログラム 1
modpow2.c答 3.70繰り返し 2 乗法によって `a^n mod m` を計算するプログラム 2
modsqrt.c答 4.12`x^2 -= a mod p` となる `x` を一つ見つけるプログラム
sieve.c答 1.22エラトステネスのふるい

本書で上記のプログラムにはないものがある。問 3.74 の答で、 素数 104729 の最小原始根を求めるものである。本書の p.192 では、答 3.74 104729 の最小原始根は 23 である.web 上のプログラム例を参照. とあるが、このプログラム例がない。仕方がないので上の genshi2.c を書き換えて答を出そうとした。しかし、答が出ない。 C 言語の int が 32 ビット整数であるために、桁あふれが起きるのだろう。int を long に書き換えて(64 bit マシンなので sizeof(long) = 8 である)、 再度実行したところ、答は 12 だった。23 ではないのか。気になって、WolframAlpha
https://ja.wolframalpha.com/input?key=&i2d=true&i=PrimitiveRoot%5C%2891%29104729%5C%2893%29
で計算させたり、下記のサイトで示されている Python によるコード
https://tobetakoyaki.hatenablog.com/entry/2019/09/09/190000
で計算させたりしたが、どちらも 12 の値が出る。いいのだろうか。

講座<数学の考え方>

数式記述

数式記述は ASCIIMathML を、 数式表現は MathJax を用いている。

書誌情報

書名初等整数論
著者木田祐司
発行日2001 年 11 月 25 日(初版第 1 刷)
発行元朝倉書店
定価3600 円(本体)
サイズ276ページ
ISBN4-254-11596-2
その他草加市立図書館で借りて読む

まりんきょ学問所数学の本 > 木田祐司:初等整数論


MARUYAMA Satosi