qwq
我终于开始学数论了啊
以下全为一个蒟蒻的口胡
正文
- 设 a , b a,b a,b为非零整数,若存在 a ∗ q = b a*q=b a∗q=b,那么就说 b b b可被 a a a整除,记作 a ∣ b a\mid b a∣b
- 如果 a ∣ b a\mid b a∣b且 b ∣ c b\mid c b∣c那么, a ∣ c a \mid c a∣c
- a ∣ b a\mid b a∣b且 a ∣ c a \mid c a∣c等价于对于任意整数 x , y x,y x,y有 a ∣ ( b ∗ x + c ∗ y ) a\mid (b*x+c*y) a∣(b∗x+c∗y)
- 设 m = ̸ 0 m = \not 0 m≠0,那么 a ∣ b a\mid b a∣b等价于 ( m ∗ a ) ∣ ( m ∗ b ) (m*a)\mid (m*b) (m∗a)∣(m∗b)
- 设整数
x
,
y
x,y
x,y满足
a
∗
x
+
b
∗
y
=
1
a*x+b*y=1
a∗x+b∗y=1,且
a
∣
n
,
b
∣
n
a\mid n,b \mid n
a∣n,b∣n那么
(
a
∗
b
)
∣
n
(a*b)\mid n
(a∗b)∣n
证明:
∵ a ∣ n , b ∣ n \because a \mid n,b \mid n ∵a∣n,b∣n
∴ ( a ∗ b ) ∣ ( n ∗ b ) , ( a ∗ b ) ∣ ( n ∗ a ) \therefore(a*b)\mid(n*b),(a*b) \mid (n * a) ∴(a∗b)∣(n∗b),(a∗b)∣(n∗a)
∴ ( a ∗ b ) ∣ ( x ∗ n ∗ a + y ∗ n ∗ b ) \therefore(a*b) \mid(x*n*a+y*n*b) ∴(a∗b)∣(x∗n∗a+y∗n∗b)
∵ a ∗ n ∗ x + b ∗ n ∗ y = n ∗ ( a ∗ x + b ∗ y ) = n \because a*n*x+b*n*y=n*(a*x+b*y)=n ∵a∗n∗x+b∗n∗y=n∗(a∗x+b∗y)=n
∴ ( a ∗ b ) ∣ n \therefore(a*b)\mid n ∴(a∗b)∣n - 若 b = q ∗ d + c b=q*d+c b=q∗d+c,那么 d ∣ b d\mid b d∣b的充要条件是 d ∣ c d \mid c d∣c
-
∀
a
,
b
∈
N
,
gcd
(
a
,
b
)
∗
l
c
m
(
a
,
b
)
=
a
∗
b
\forall a,b \in\N, \quad \gcd(a,b)*lcm(a,b)=a*b
∀a,b∈N,gcd(a,b)∗lcm(a,b)=a∗b(
l
c
m
(
a
,
b
)
lcm(a,b)
lcm(a,b)为
a
,
b
a,b
a,b的最小公倍数)
证明:
令 d = gcd ( a , b ) d=\gcd(a,b) d=gcd(a,b)
a 0 = a / d , b 0 = b / d a_0=a/d,b_0=b/d a0=a/d,b0=b/d
则有 g c d ( a 0 , b 0 ) = 1 gcd(a_0,b_0)=1 gcd(a0,b0)=1
l c m ( a 0 , b 0 ) = a 0 ∗ b 0 lcm(a_0,b_0)=a_0*b_0 lcm(a0,b0)=a0∗b0
l c m ( a 0 ∗ d , b 0 ∗ d ) = a 0 ∗ b 0 ∗ d lcm(a_0*d,b_0*d)=a_0*b_0*d lcm(a0∗d,b0∗d)=a0∗b0∗d
l c m ( a , b ) = a ∗ b / g c d ( a , b ) lcm(a,b)=a*b/gcd(a,b) lcm(a,b)=a∗b/gcd(a,b)
l c m ( a , b ) ∗ g c d ( a , b ) = a ∗ b lcm(a,b)*gcd(a,b)=a*b lcm(a,b)∗gcd(a,b)=a∗b - 九章算术(更相减损术)
∀ a , b ∈ N , a ≥ b \forall a,b \in \N,a\geq b ∀a,b∈N,a≥b,有 gcd ( a , b ) = gcd ( b , a − b ) = gcd ( a , a − b ) \gcd(a,b)=\gcd(b,a-b)=\gcd(a,a-b) gcd(a,b)=gcd(b,a−b)=gcd(a,a−b)
∀ a , b ∈ N \forall a, b \in \N ∀a,b∈N,有 gcd ( 2 a , 2 b ) = 2 gcd ( a , b ) \gcd(2a, 2b)=2\gcd(a,b) gcd(2a,2b)=2gcd(a,b)
gcd ( a 1 , a 2 , ⋯   , a n ) = gcd ( a 1 , a 2 − a 1 , ⋯   , a n − a n − 1 ) \gcd(a_1,a_2,\cdots,a_n)=\gcd(a_1,a_2-a_1,\cdots,a_n-a_{n-1}) gcd(a1,a2,⋯,an)=gcd(a1,a2−a1,⋯,an−an−1) - 欧几里得算法
∀ a , b ∈ N , b = ̸ 0 , gcd ( a , b ) = gcd ( b , a   m o d   b ) \forall a,b \in \N, b = \not 0, \qquad \gcd(a,b)=\gcd(b, a \bmod b) ∀a,b∈N,b≠0,gcd(a,b)=gcd(b,amodb)
inline int gcd(int a, int b} { return b ? gcd(b, a % b) : a; }
复杂度大致为 O ( l o g ( a + b ) ) O(log(a+b)) O(log(a+b))