こちらにも投稿しておこう。
受験生は log10(2), log10(3) は知っているとの前提で
import math
もともとの数値
(2 * 3 * 5 * 7 * 11 * 13)**10
596421543032951827553785377955490490000000000
それは知らない(わからない)ことにしておいて,
10 乗する数は
2 * 3 * 5 * 7 * 11 * 13
30030
まず,30030 よりほんの少し小さい数を 2, 3, 5 のべき乗の積で作る
2 * 4 * 4 * 5 * 10 * 16, 2**8 * 100
(25600, 25600)
25600**10 の常用対数を取る
10*(8*math.log10(2) + 2)
44.0823996531185
次に,30030 よりほんの少し大きい数を 2, 3, 5 のべき乗の積で作る
2 * 4 * 4 * 6 * 10 * 16, 2**10 * 3 * 10
(30720, 30720)
30720**10 の常用対数を取る
10*(10*math.log10(2) + math.log10(3) + 1)
44.87421211359475
3 つの数値は,同じ桁数になったようだ...
(2 * 3 * 5 * 7 * 11 * 13)**10 の常用対数は 25600 の常用対数より大きく, 30720 の常用対数より小さい
10*(8*math.log10(2) + 2) < math.log10((2 * 3 * 5 * 7 * 11 * 13)**10) < math.log10((2**10 * 3 * 10)**10)
True
さらに,桁数は同じ 45 桁である。
10*(8*math.log10(2) + 2), math.log10((2 * 3 * 5 * 7 * 11 * 13)**10), math.log10((2**10 * 3 * 10)**10)
(44.0823996531185, 44.77555332198981, 44.874212113594744)