p進評価
p進評価は「その整数に素数 \(p\) が何回含まれるか」を数える記法です。 割り切れの問題を、指数の比較に変えられます。
定義
素数 \(p\) と正整数 \(n\) に対し、 \(p^e\mid n\) かつ \(p^{e+1}\nmid n\) を満たす整数 \(e\ge0\) を \(v_p(n)\) と定義します。
例として \(72=2^3\cdot3^2\) なので \(v_2(72)=3,\ v_3(72)=2\) です。
基本性質
- \(v_p(ab)=v_p(a)+v_p(b)\)
- \(v_p(a^k)=k\,v_p(a)\)(\(k\) は非負整数)
- \(v_p\!\left(\frac{a}{b}\right)=v_p(a)-v_p(b)\)(\(a,b\neq0\) を有理数で考える)
- \(v_p(a+b)\ge\min\{v_p(a),v_p(b)\}\)
証明を見る
たとえば \(a=p^ru,\ b=p^sv\)(\(p\nmid u,v\))と書くと \(ab=p^{r+s}(uv)\) で \(p\nmid uv\) だから \(v_p(ab)=r+s\) です。 加法の不等式は \(a+b=p^{\min(r,s)}(p^{r-\min(r,s)}u+p^{s-\min(r,s)}v)\) と因数分解すれば従います。
Legendreの公式
階乗に含まれる \(p\) の個数は次で求まります。
証明を見る
\(1\) から \(n\) までのうち \(p\) の倍数は \(\lfloor n/p\rfloor\) 個あり、 それぞれ最低1個の \(p\) を供給します。 さらに \(p^2\) の倍数は追加で1個、\(p^3\) の倍数はさらに1個というように数えると、 ちょうど上の和になります。
例題
例1:階乗の2進評価
\(v_2(100!)\) を求めます。
解答を見る
例2:二項係数の3進評価
\(v_3\!\left(\binom{10}{4}\right)\) を求めます。
解答を見る
\(\binom{10}{4}=\frac{10!}{4!6!}\) なので
よって 3 でちょうど1回割り切れます。
例3:最大公約数を指数で処理
\(A=2^{20}3^{12}5^3,\ B=2^{14}3^{15}5\) の \(\gcd(A,B)\) を求めます。
解答を見る
\(v_2\) は \(\min(20,14)=14\)、\(v_3\) は \(\min(12,15)=12\)、\(v_5\) は \(\min(3,1)=1\) です。 よって \(\gcd(A,B)=2^{14}3^{12}5\) です。
例4:和での注意
\(v_2(12+20)\) と \(\min(v_2(12),v_2(20))\) を比べます。
解答を見る
\(v_2(12)=2,\ v_2(20)=2\) なので最小値は \(2\) です。 しかし \(12+20=32\) なので \(v_2(32)=5\) です。 したがって等号は常には成り立たず、不等号 \(\ge\) だけが一般に正しいと分かります。
数学オリンピックでの使いどころ
- 「何乗で割り切れるか」を厳密に出す問題
- 二項係数や階乗の素因数の個数評価
- LTEやKummerの定理を使う前処理
ありがちな失敗
- \(v_p(a+b)=\min(v_p(a),v_p(b))\) と常に等しいと思い込む
- Legendreの和でゼロになる項まで足し続ける
- \(p\) が素数である条件を忘れて \(v_6\) のように書く
次に学ぶもの
- Kummerの定理(桁上がりと二項係数)
- LTE(指数引き上げ補題)
- 合同式と併用した整除性の証明