Legendre の定理の近似について紹介しておきます.
今回の問いであれば,この近似でも十分に耐えうる粗さです(理由は後述します).
まず,Legendre の定理とは次のようなものでした.
定理:自然数 n と素数 p に対して,n! を p で割り切れる最大の回数は k=1∑∞⌊pkn⌋ である.
ここで,床関数を外す近似を考えると,次の式を得ます.
k=1∑∞⌊pkn⌋≒k=1∑∞pkn=p−1n
実際にこの近似を用いてみると,2244! については次のように書き表されます.
2244!≒22−12244×33−12244×55−12244×77−12244×⋯=22244×31122×5561×7374⋯
正しい値は 22240×31120×5557×7371×⋯ なので,そう大きくは外していないことがわかります.
以下では,この近似の精度について考えていきます.
x=⌊logpn⌋ と置いて,近似値と真の値の差を取ります.
k=1∑∞(pkn−⌊pkn⌋)=k=1∑x(pkn−⌊pkn⌋)+k=x+1∑∞(pkn−⌊pkn⌋)<k=1∑x1+k=x+1∑∞pkn=x+px(p−1)n
最後の項 px(p−1)n については,px≤n<px+1 であったことから,おおよそ 1 になります.
以上の議論から,ここで紹介した近似は, n を p 進数で表したときの桁数程度の誤差を生じうるとわかります(なお,以上の議論を参考にすれば,この近似は必ず真の値より大きい方にずれることもわかります).
振り返って今回の問いですが,2244 を 2 進数で表すと 12 桁になります.
従って,今回の近似で得た 22244×31122×5561×7374⋯ ですが,指数を 500 で割った商であれば,真の値と一致することがわかります.
もし今回の問いが,2244! でなく 2024! だった場合には,この近似を使って良いかは十分注意する必要があります.
二つの値を調べてみると,
近似値:22024×31012×5506×733731×⋯
真の値:22017×31006×5503×7335×⋯
と,ちょっと怖い感じがします(実際は,⌊log22024⌋=11,⌊log32024⌋=6,⌊log52024⌋=4 なので問題ありません).
以上,近似についての紹介でした.