問題: 数 3の4798乗の末尾の3つの数字はなんだろうか? ( 「問題解決への数学」 丸善より) 多分、何回か3をかければ下3桁が同じ値を繰り返すようになるんだろうなと思い計算してみました。 ちなみに末尾の一桁は3,9,7,1と4回かけるごとに循環します。 3桁では簡単に見つかりそうにないのでRubyスクリプトで計算させてみたところ、3の100乗でようやく"003"に戻ることが確認できました。 さすがに100乗は手計算では面倒極まりないので、きっともっと良い抜け道があるんだろうなと思うのですが、まだ発見できていません。 ちなみに末尾の2桁は20乗するごとに循環します。 4乗-20乗-100乗 ... とくると、もしかしたら累乗の値が5倍になる毎ってことでしょうか?。 500乗すれば末尾4桁が"0003"に戻り、2500乗すれば末尾5桁が"00003"になるのでしょうか? そうだとしても理屈が理解できません。なぜ? その問題はおいておいて、本来の問題の答え合わせがしたいのに、書籍に回答が載っていませんでした。 しょうがないのでRubyに真っ向勝負で3の4798乗をさせてみました。 x = 1 i = 1 for i in 0..4798 1..4798 x *= 3 p x i += 1 end 答えをはじき出してしまいました。 特別なライブラリを利用することも、かけ算ルーチンを自前で作ることも無しに。 506875616363543879916032533641797669560990746583999999302921895306376266400633026773508112521573067 636403865588246156868982582588885536960623987482026959689937962026776594925792728327028309953065497 593046053431462142459107974111674607241764096136090859185714592403930621843431671255952254699445089 558419084750250781442...