GDKOI DAY 1 数论基础
质数
算术基本定理:任何一个大于1的正整数都能分解为有限个质数的乘积
P1C1 * P2C2 * … * PMCM=n
线性筛法
每个合数只被最小素数因子筛除
比挨氏筛法快
for (int i=2;i<=n;i++)
{
if (!flag[i]) prime[++tot]=i;
for (int j=1;j<=tot&&prime[j]*i<=n;j++)
{
flag[prime[j]*i]=1;
if (i%prime[j]==0) break;
}
}
整除
∑
\sum
∑ 累加
∏
\prod
∏ 相乘
两个数的公倍数可以整除它们的公因数
a*b=gcd(a,b)*lcm(a,b)
更相减损法:gcd(a,b)=gcd(a,a-b)=gcd(b,b-a)
欧拉函数
1~n中与n互质的个数称为欧拉函数,记为
φ
(
n
)
\varphi (n)
φ(n)
φ
(
n
)
=
N
∗
P
11
P
1
∗
P
2
−
1
P
2
∗
.
.
.
∗
P
M
−
1
P
M
\varphi (n)=N*\frac{P11}{P1}*\frac{P2-1}{P2}*... *\frac{PM-1}{PM}
φ(n)=N∗P1P11∗P2P2−1∗...∗PMPM−1
欧拉函数的性质:
- φ ( 1 ) = 1 \varphi(1)=1 φ(1)=1
- 当p是质数时, φ ( p ) = p − 1 \varphi(p)=p-1 φ(p)=p−1
- 当p是质数时,对于nk, φ ( n ) = p k − p ( k − 1 ) = ( p − 1 ) ∗ p ( k − 1 ) \varphi(n)=p^k-p^{(k-1)}=(p-1)*p^{(k-1)} φ(n)=pk−p(k−1)=(p−1)∗p(k−1)
- 对于gcd(a,b)=1, φ ( a ∗ b ) = φ ( a ) ∗ φ ( b ) \varphi(a*b)=\varphi(a)*\varphi(b) φ(a∗b)=φ(a)∗φ(b)
- 对于质数p,若n是p的倍数(n%p==0),则
φ
(
n
∗
p
)
=
φ
(
n
)
∗
p
\varphi(n*p)=\varphi(n)*p
φ(n∗p)=φ(n)∗p
若n和p互质(n%p!=0),则 φ ( n ∗ p ) = φ ( n ) ∗ ( p − 1 ) \varphi(n*p)=\varphi(n)*(p-1) φ(n∗p)=φ(n)∗(p−1) - 对于n>1,1~n中与n互质的和为 n ∗ φ ( n ) / 2 n*\varphi(n)/2 n∗φ(n)/2
- ∑ d ∣ n φ ( d ) = n \sum d|n\varphi(d)=n ∑d∣nφ(d)=n
同余
若用m除两个整数a和b所得余数相同,称a和b对mod m同余
- a ≡ b a \equiv b a≡b(mod m),当且仅当m|(a-b)
- a ≡ b a \equiv b a≡b(mod m),当且仅当存在整数k,a=b+km
- 有同加性,同乘性,同幂性,当不满足同除性
- 若 a mod p=x,a mod q=x, 其中pq互质,则a mod (pq)=x
欧拉定理:
若正整数a,n互质,则
a
φ
(
n
)
≡
1
a^{\varphi(n)}\equiv 1
aφ(n)≡1 (mod n)
费马小定理
若p是整数,则对于任意整数a,ap ≡ \equiv ≡a (mod p)
证明:
gcd(a,p)=1
⇒
\Rightarrow
⇒
a
φ
(
p
)
≡
1
a^{\varphi(p)}\equiv 1
aφ(p)≡1 (mod p)
⇒
\Rightarrow
⇒ ap-1
≡
\equiv
≡ 1(mod p)
不懂的东西