一、整除 约数 倍数
a|b表示b除以a余0,也就是a能整除b。称a是b的约数,b是a的倍数。
若a|b, a|c, 则a|(b+c)
若a|b, 那么对所有整数c, a|bc
若a|b, b|c, 则a|c
二、素数 合数
约数只有1和本身的数是素数,除此以外还有其他约数的数是合数。1既不是素数也不是合数。
三、算数基本定理
每个正整数都可以惟一地表示成素数的乘积。即有唯一的分解质因数方案:
其中x的约数个数可以表示为:
求N的约数个数是 O(N−−√) 的
想一想为什么?
四、最大公约数gcd( )和最小公倍数lcm[ ]
若
则
且
gcd(a,b)=gcd(a−b,b)
gcd(a,b)=gcd(a%b,a)
lcm(a,b)=a∗b/gcd(a,b)
想一想为什么?
有时简化书写将gcd(a,b)记为(a,b),lcm(a,b)为[a,b]
五、欧几里德算法(辗转相除)
原理:
gcd(a,b)=gcd(b,a%b)
递归下去,直到b=0,此时a就是最大公约数
代码:
int gcd(int a,int b){
if (b==0) return a;
else return gcd(b,a%b);
}
int gcd(int x,int y){
int r=y%x;
while (r!=0){
y=x;
x=r;
r=y%x;
}
return x;
}
六、 ∑ 和 ∏
∑ 连加
∏ 连乘
都满足 交换律和 分配律
七、其他符号约定&&高斯函数
[条件]=0(如果条件为假)或1(如果条件为真)
逻辑短路:
高斯函数:
[x] 或 ⌈x⌉ 表示不超过x的最大的整数(向上取整)
⌊x⌋ 表示不小于x的最小的整数(向下取整)
特别注意:计算机中的取整为向0取整!
八、欧拉函数
ϕ(n)
表示小于n的数中中与n互质的数的个数,特殊地,
ϕ(1)=1
性质:
(1)
证明:p的约数只有1和p,显然成立
(2)
证明: ϕ(pk)=pk−pk−1=(p−1)pk−1
即 1…pk 中只有 pkp=pk−1 个数和 pk 不互质,其余的数都和 pk 互质
那么我们可以将这个式子推广一下,即
可以发现每一个 pkii 都是互质的,那么利用 ϕ 是积性函数和自然数的唯一分解定理可以证明。
(3)
给出证明:
(4)
(5)
用于 n√ 求 ϕ
证明:
我们已经知道 ϕ(n)=∏ipki−1i(pi−1),n=∏ipkii ,经过简单的变形就可以得到
九、莫比乌斯函数
莫比乌斯函数的一个性质:
同样不要问我证明。。。
十、同余
a,b对p取模得到相同余数,称a,b在模p意义下同余,记为
a≡b(modp)
性质:
同余关系的自反、对称、传递:
a≡a(modp)
若
a≡b(modp)
,则
b≡a(modp)
若
a≡b(modp)
,
b≡c(modp)
,则
a≡c(modp)
同余关系的加减:
若
a≡b(modp)
,
c≡d(modp)
,则
a±c≡b±d(modp)
同余关系相乘:
若
a≡b(modp)
,
c≡d(modp)
,则
ac≡bd(modp)
想一想为什么?
十一、欧拉定理和费马小定理
欧拉定理:若a,p为正整数且(a,p)=1,则满足:
费马小定理:若a为正整数,p为质数,且(a,p)=1,则满足:
证明:非常简单,前面我们已经知道当p为质数时 ϕ(p)=p−1 ,将此结论代入欧拉定理即可证明。
十二、逆元
逆元:如果
ab≡1(modp)
,那么我们称在模p意义下a,b互为逆元。
a有逆元的充要条件是(a,p)=1。(想一想为什么?)
所以,当p为质数时,
ap
的逆元为
ap−2
(由费马小定理可知)
逆元的作用:在模意义下进行除法。乘a的逆元等同于除以a。