( a + b ) % m o d = ( a % m o d + b ) % m o d = ( a % m o d + b % m o d ) % m o d (a+b)\%mod=(a\%mod+b)\%mod=(a\%mod+b\%mod)\%mod (a+b)%mod=(a%mod+b)%mod=(a%mod+b%mod)%mod
计算加法时,每相加一次执行一次
%
m
o
d
\%mod
%mod
假设
a
=
a
1
∗
m
o
d
+
a
2
a=a_1*mod+a_2
a=a1∗mod+a2以及
b
=
b
1
∗
m
o
d
+
b
2
b=b_1*mod+b_2
b=b1∗mod+b2
(
a
+
b
)
%
m
o
d
=
(
a
1
∗
m
o
d
+
a
2
+
b
1
∗
m
o
d
+
b
2
)
%
m
o
d
=
(
a
2
+
b
1
∗
m
o
d
+
b
2
)
%
m
o
d
=
(
a
2
+
b
2
)
%
m
o
d
(a+b)\%mod=(a_1*mod+a_2+b_1*mod+b_2)\%mod=(a_2+b_1*mod+b_2)\%mod=(a_2+b_2)\%mod
(a+b)%mod=(a1∗mod+a2+b1∗mod+b2)%mod=(a2+b1∗mod+b2)%mod=(a2+b2)%mod
( a ∗ b ) % m o d = ( a % m o d ∗ b ) % m o d = ( a % m o d ∗ b % m o d ) % m o d (a*b)\%mod=(a\%mod*b)\%mod=(a\%mod*b\%mod)\%mod (a∗b)%mod=(a%mod∗b)%mod=(a%mod∗b%mod)%mod
计算乘法时,每相乘一次执行一次
%
m
o
d
\%mod
%mod
假设
a
=
a
1
∗
m
o
d
+
a
2
a=a_1*mod+a_2
a=a1∗mod+a2以及
b
=
b
1
∗
m
o
d
+
b
2
b=b_1*mod+b_2
b=b1∗mod+b2
(
a
∗
b
)
=
(
a
1
∗
m
o
d
+
a
2
)
∗
(
b
1
∗
m
o
d
+
b
2
)
=
(
a
1
∗
b
1
∗
m
o
d
2
+
a
1
∗
b
2
∗
m
o
d
+
a
2
∗
b
1
∗
m
o
d
+
a
2
∗
b
2
)
(a*b)=(a_1*mod+a_2)*(b_1*mod+b_2)=(a_1*b_1*mod^2+a_1*b_2*mod+a_2*b_1*mod+a_2*b_2)
(a∗b)=(a1∗mod+a2)∗(b1∗mod+b2)=(a1∗b1∗mod2+a1∗b2∗mod+a2∗b1∗mod+a2∗b2)
(
a
∗
b
)
%
m
o
d
=
(
a
1
∗
b
1
∗
m
o
d
2
+
a
1
∗
b
2
∗
m
o
d
+
a
2
∗
b
1
∗
m
o
d
+
a
2
∗
b
2
)
%
m
o
d
=
(
a
2
∗
(
b
1
∗
m
+
b
2
)
)
%
m
o
d
=
(
a
2
∗
b
2
)
%
m
o
d
(a*b)\%mod=(a_1*b_1*mod^2+a_1*b_2*mod+a_2*b_1*mod+a_2*b_2)\%mod=(a_2*(b_1*m+b_2))\%mod=(a_2*b_2)\%mod
(a∗b)%mod=(a1∗b1∗mod2+a1∗b2∗mod+a2∗b1∗mod+a2∗b2)%mod=(a2∗(b1∗m+b2))%mod=(a2∗b2)%mod