2 数论基础
注:本内容部分章节知识罗列了大概目录以及主要概念,仅为本人在阅读相关资料时的随笔,有些地方也并不是很理解,暂且挖坑,等随后再填
2.1 整除性和带余除法
2.1.1 整除性
b|a 表示a处以b没有余数,几个重要的性质如下:
- 若 a|1, 则a = ± 1
- 若 a|b 且 b|a, 则a = ±b
- 任何不等于0的树整除0
- 若a|b,b|c, 则a|c
- 对于任意整数m,n,若b|g,b|h, 则有 b|(mg + nh)‼️
2.1.2 带余除法
对于任意正整数n, 非负整数a,会有:
a = q*n + r 该式被称为带余除法
另外,a为负数时,上式也是成立的,r 称为剩余数
2.2 欧几里得算法
欧几里得算法是数论中的一个最基本的技巧,能简单求出两个整数的最大公因子
2.2.1 最大公因子
2.2.2 求最大公因子
欧几里德算法实现
func gcd(a, b int) int {
if a < b {
a, b = b, a
}
for {
//取余数,若为0,除数就是二者的最大公约数
c := a % b
fmt.Println("c:", c)
if c == 0 {
break
} else {
//除数等于被除数,余数最为除数重新计算余数
a = b
b = c
}
}
return b
}
2.3 模运算
2.3.1 模
若 a = q*n + r r为a模n,计作 a mod n,n称为模数
2.3.2 同余的性质
- n|(a-b)&#x