Home
Blog
Products
Profile
Study
Collatz
© 2024 Oizumi Yuta

p - 1 法で小さい数の約数を計算する

2025-1-7

小さい数で p−1p - 1p−1 法を考えると少し仕組みがわかりやすい。

p−1p - 1p−1 法において nnn の約数を見つけるとき、境界値 b∈Nb\in \mathbb{N}b∈N を動かし k=lcm(1,2,⋯ ,b)k = \textrm{lcm}(1, 2, \cdots, b)k=lcm(1,2,⋯,b) として

gcd⁡(ak−1, n)\gcd(a^k - 1,\ n)gcd(ak−1, n)

を計算する。ここで bbb (すなわち kkk)が大きいとうまくいかない。

例 1

2 つの素因数をもつ n=15n = 15n=15 について考える。a=2, b=4a = 2,\ b = 4a=2, b=4 のとき k=lcm(1,2,3,4)=12k = \textrm{lcm}(1, 2, 3, 4) = 12k=lcm(1,2,3,4)=12 であり

gcd⁡(212−1, 15)=15\gcd(2^{12} - 1,\ 15) = 15gcd(212−1, 15)=15

となってしまい、非自明な約数を得ることができない。15=3×515 = 3 \times 515=3×5 であり、3−1∣12, 5−1∣123 - 1 \mid 12,\ 5 - 1 \mid 123−1∣12, 5−1∣12 より

212≡1(mod3), 212≡1(mod5)2^{12} \equiv 1 \pmod{3},\ 2^{12} \equiv 1 \pmod{5}212≡1(mod3), 212≡1(mod5)

が成り立つ(フェルマーの小定理)。よって

212≡1(mod15)2^{12} \equiv 1 \pmod{15}212≡1(mod15)

となってしまい、gcd⁡(212−1,15)=15\gcd(2^{12} - 1, 15) = 15gcd(212−1,15)=15 となる。

そこで b=2b = 2b=2 とすると k=lcm(1, 2)=2k = \textrm{lcm}(1,\ 2) = 2k=lcm(1, 2)=2 であり、3−1∣2, 5−1∤23 - 1 \mid 2,\ 5 - 1 \nmid 23−1∣2, 5−1∤2 となる。よって

22≡1(mod3), 22≢1(mod5)2^{2} \equiv 1 \pmod{3},\ 2^{2} \not \equiv 1 \pmod{5}22≡1(mod3), 22≡1(mod5)

だから

gcd⁡(22−1, 15)=3\gcd(2^{2} - 1,\ 15) = 3gcd(22−1, 15)=3

となり、非自明な約数を得ることができる。

例 2

次に 3 つの素因数をもつ n=105=3×5×7n = 105 = 3 \times 5 \times 7n=105=3×5×7 について考える。k=lcm(1,2,3,4)=12k = \textrm{lcm}(1, 2, 3, 4) = 12k=lcm(1,2,3,4)=12 のとき kkk が大きすぎるためうまくいかない。例 1 と同様に 3−1, 5−1, 7−13 - 1,\ 5 - 1,\ 7 - 13−1, 5−1, 7−1 のいずれも 121212 を割ってしまうからだ。そこで kkk を小さくとると

gcd⁡(22−1, 105)=3,gcd⁡(24−1, 105)=15\gcd(2^2 - 1,\ 105) = 3,\\ \gcd(2^4 - 1,\ 105) = 15gcd(22−1, 105)=3,gcd(24−1, 105)=15

となりうまくいく(2 行目は p−1p - 1p−1 法を適用した結果は必ずしも素数になるとは限らない例)。