如果你碰巧随机到了这些数的因子,比如随机到a=3,你会发现
3
561
−
1
≡
375
̸
≡
1
(
m
o
d
561
)
3^{561-1}\equiv375\not\equiv1\ (mod\ 561)
3561−1≡375̸≡1(mod561)。但它们的因子不多,假如你没随机到,那么就gg了。
二次探测定理强化
考虑强化这个算法。
二次探测定理:若p为质数,a为小于p的正整数,则方程
a
2
≡
1
(
m
o
d
p
)
a^2\equiv1\ (mod\ p)
a2≡1(modp)的解为:
a
≡
±
1
(
m
o
d
p
)
a\equiv±1\ (mod\ p)
a≡±1(modp)。
因为
a
2
≡
1
(
m
o
d
p
)
a^2\equiv1\ (mod\ p)
a2≡1(modp),故
p
∣
(
a
2
−
1
)
p|(a^2-1)
p∣(a2−1),即
p
∣
(
a
+
1
)
(
a
−
1
)
p|(a+1)(a-1)
p∣(a+1)(a−1)。那么囿于p为质数,p肯定与a+1或a-1互质,那么直接套欧几里得引理,
p
∣
(
a
+
1
)
p|(a+1)
p∣(a+1)或
p
∣
(
a
−
1
)
p|(a-1)
p∣(a−1),即
a
≡
±
1
(
m
o
d
p
)
a\equiv±1\ (mod\ p)
a≡±1(modp)。
若p为奇素数,那么记
p
−
1
=
2
k
q
,
2
∤
q
p-1=2^kq,2∤q
p−1=2kq,2∤q。
设
a
∤
q
a∤q
a∤q,则下面两项条件至少一项必然成立:
a
q
≡
1
(
m
o
d
p
)
a^q\equiv1\ (mod\ p)
aq≡1(modp)
a
q
,
a
2
q
,
a
2
2
q
,
…
,
a
2
k
−
1
q
≡
−
1
(
m
o
d
p
)
a^q,a^{2q},a^{2^2q},…,a^{2^{k−1}q}≡−1\ (mod\ p)
aq,a2q,a22q,…,a2k−1q≡−1(modp)
因为第二个条件中的数,每一个都是前一个的平方;而根据费马小定理,
a
2
k
q
≡
a
p
−
1
≡
1
(
m
o
d
p
)
a^{2^kq}\equiv a^{p-1}\equiv1\ (mod\ p)
a2kq≡ap−1≡1(modp)。