上节我们说到,先凑出
37
37
37,再搞出
18
18
18,就能搞出
666
666
666。
那为什么是这两个数呢?
尝试把
666
666
666 质因数分解,得到
666
=
2
×
3
2
×
37
666=2\times3^2\times37
666=2×32×37发现没?最后的答案
a
n
s
=
46
=
(
2
+
3
+
3
+
37
)
+
1
ans=46=(2+3+3+37)+1
ans=46=(2+3+3+37)+1!
难道这仅是巧合吗?
我们再举几个例子。
18
=
2
×
3
2
,
a
n
s
18
=
2
+
3
+
3
+
1
=
9
18=2\times3^2,ans_{18}=2+3+3+1=9
18=2×32,ans18=2+3+3+1=9
63
=
7
×
9
,
a
n
s
63
=
7
+
9
+
1
=
17
63=7\times9,ans_{63}=7+9+1=17
63=7×9,ans63=7+9+1=17
72
=
2
3
×
3
2
,
a
n
s
72
=
2
+
2
+
2
+
3
+
3
+
1
=
13
72=2^3\times3^2,ans_{72}=2+2+2+3+3+1=13
72=23×32,ans72=2+2+2+3+3+1=13现在你信了吧。
今有结论
\quad
若正整数
N
=
p
1
p
2
.
.
.
p
c
N=p_1p_2...p_c
N=p1p2...pc,其中
p
p
p 是素数,则最少需要
(
∑
p
)
+
1
(\sum{p})+1
(∑p)+1 次才能按出
N
N
N。
证明: 考虑数
n
=
p
1
n=p_1
n=p1显然,我们只有
1
1
1 种方案按出
n
n
n,就是按
n
n
n 次 =
,GT
。
为什么我们没有第二种方案呢?
假设我们有第二种方案按出
n
n
n,而且它是先按出
x
(
1
<
x
<
n
)
x\ (1<x<n)
x (1<x<n),再经过一波操作搞出
n
n
n。
那么,因为你已经搞出了
x
x
x,所以接下来的操作中,最小的加数也是
x
x
x。
换句话说,你没法再加比
x
x
x 更小的数了。
所以这样的话,
x
x
x 必须满足
x
∣
gcd
(
x
,
n
)
x\ |\ \gcd(x,n)
x ∣ gcd(x,n)即
x
∣
n
x\ |\ n
x ∣ n因为
n
n
n 是素数,
x
<
n
x<n
x<n,所以
x
=
1
x=1
x=1,矛盾!
这样我们就证明了,当
n
n
n 为素数时,有且只有一种方案,且
a
n
s
=
n
+
1
ans=n+1
ans=n+1。
那如果
n
′
=
p
1
p
2
n'=p_1p_2
n′=p1p2 呢?
设我们先按出 x ′ ( 1 < x ′ < n ) x'\ (1<x'<n) x′ (1<x′<n),经过一波操作后得到 n ′ n' n′。因为 n ′ n' n′ 的因子只有 1 , p 1 , p 2 , n 1,p_1,p_2,n 1,p1,p2,n,根据上面的证明,有 x ′ ∈ { p 1 , p 2 } x'\in\{p_1,p_2\} x′∈{p1,p2}。
当
x
′
=
p
1
x'=p_1
x′=p1 时,需要按
a
n
s
1
=
p
1
+
1
ans_1=p_1+1
ans1=p1+1 次(
p
1
p_1
p1 次 =
和一次 GT
)。
这样我们就得到
1
1
1 个
p
1
p_1
p1,而我们的目标是
p
2
p_2
p2 个
p
1
p_1
p1,所以我们还差
p
2
−
1
p_2-1
p2−1 个
p
1
p_1
p1,所以还需按下
p
2
−
1
p_2-1
p2−1 个 =
和一个 GT
一共
a
n
s
2
=
p
2
ans_2=p_2
ans2=p2 次。
这样我们就证明了,当
n
′
n'
n′ 为两素数乘积时,至少需要按下
(
a
n
s
=
a
n
s
1
+
a
n
s
2
=
p
1
+
p
2
+
1
)
(ans=ans_1+ans_2=p_1+p_2+1)
(ans=ans1+ans2=p1+p2+1) 次。
那如果
N
=
p
1
p
2
.
.
.
p
c
N=p_1p_2...p_c
N=p1p2...pc 呢?
同理。设
N
c
=
p
1
p
2
.
.
.
p
c
N_c=p_1p_2...p_c
Nc=p1p2...pc。则
N
3
=
p
1
p
2
p
3
=
N
2
p
3
N_3=p_1p_2p_3=N_2p_3
N3=p1p2p3=N2p3按出
N
2
N_2
N2 需要
(
p
1
+
p
2
+
1
)
(p_1+p_2+1)
(p1+p2+1) 次,我们还差
p
3
−
1
p_3-1
p3−1 个
N
2
N_2
N2。同上理,按出
N
3
N_3
N3 需要
p
1
+
p
2
+
p
3
+
1
p_1+p_2+p_3+1
p1+p2+p3+1 次。
设按出
N
a
N_a
Na 需要
a
n
s
a
ans_a
ansa 次。
因为
N
a
=
N
a
−
1
p
a
N_a=N_{a-1}p_a
Na=Na−1pa所以
a
n
s
a
=
a
n
s
a
−
1
+
p
a
ans_a=ans_{a-1}+p_a
ansa=ansa−1+pa易知
a
n
s
1
=
p
1
+
1
ans_1=p_1+1
ans1=p1+1,所以
a
n
s
c
=
a
n
s
c
−
1
+
p
c
=
a
n
s
c
−
2
+
p
c
−
1
+
p
c
=
.
.
.
=
a
n
s
1
+
p
2
+
.
.
.
+
p
c
=
(
∑
i
=
1
c
p
i
)
+
1
\begin{aligned}ans_c&=ans_{c-1}+p_c\\ &=ans_{c-2}+p_{c-1}+p_c\\ &=...\\ &=ans_1+p_2+...+p_c\\ &=(\sum_{i=1}^{c}p_i)+1 \end{aligned}
ansc=ansc−1+pc=ansc−2+pc−1+pc=...=ans1+p2+...+pc=(i=1∑cpi)+1
Q.E.D..
\text{Q.E.D..}
Q.E.D..