午後のひとときに、数学の問題を解いてみる。
問題
30!を末尾からみて、初めて現れる0以外の数字を求めよ。
シンキングタ~イム
よくある0の個数を求めるのではなくて、初めて現れる0以外の数字ということですが、
とは言っても、0の個数を考える必要はあります。
まずは30!を素因数分解します。
30! = 30・29・28・…・3・2・1
= (2・3・5)・29・(22・7)・…・3・2・1
とやっていってもいいのですが、ちょっと面倒ですね。
というわけで、素因数毎に考えることにします。
[30/2]+[30/22]+[30/23]+[30/24] = 15+7+3+1 = 26
という計算で、30!は2の26乗を約数に持つことが解ります。
同様に、
[30/3]+[30/32]+[30/33] = 10+3+1 = 14
[30/5]+[30/52] = 6+1 = 7
[30/7] = 4
[30/11] = 2
[30/13] = 2
[30/17] = 1
[30/19] = 1
[30/23] = 1
[30/29] = 1
となり、
30! = 226・314・57・74・112・132・17・19・23・29
と素因数分解が出来ました。
ここで、末尾に連なる0の個数ですが、
10 = 2・5
なので、2と5のペアの個数が末尾に連なる0の個数ということになります。
30! = (27・57)・(219・314・74・112・132・17・19・23・29)
= 107・(219・314・74・112・132・17・19・23・29)
ということで、末尾の0の個数は7個ということが解りますね。
さて、残りの
219・314・74・112・132・17・19・23・29
を計算して、末尾1桁を求めるのも面倒ですね。
というわけで、mod 10を考えます。
簡単なところからやると、十の位は削れます。
219・314・74・112・132・17・19・23・29
≡ 219・314・74・12・32・7・9・3・9 (mod 10)
≡ 12・219・317・75・92 (mod 10)
1は何乗しても1なので、
≡ 219・317・75・92 (mod 10)
92 = 81 ≡ 1 (mod 10)より、
≡ 219・3・75 (mod 10)
72 = 49 ≡ 9 (mod 10)より、
≡ 219・3・7 (mod 10)
3・7 = 21 ≡ 1 (mod 10)より、
≡ 219 (mod 10)
ここで、
24n+1 ≡ 2 (mod 10)
24n+2 ≡ 4 (mod 10)
24n+3 ≡ 8 (mod 10)
24n+4 ≡ 6 (mod 10)
という周期性から、
≡ 24・4+3 (mod 10)
≡ 23 (mod 10)
≡ 8 (mod 10)
答え 8
電卓を使えば、求まるかというと、64ビット超えするので、多倍長電卓で求めると、
265252859812191058636308480000000
となります。
ではでは