#整除、约数
###整除
在这里整理一下整除的各种性质之类的,之前学数论没有好好学这个……(学了个假数论)。
定义
b
∣
a
b | a
b∣a表示对于某个整数k,有
a
=
k
×
b
a = k \times b
a=k×b
读作b整除a,或者a被b整除
特殊的,0可以被任何数整除
简单性质:
a
∣
b
,
b
∣
c
a | b,b | c
a∣b,b∣c–>
a
∣
c
a | c
a∣c
a
∣
b
,
a
∣
c
a |b, a | c
a∣b,a∣c–>
a
∣
(
b
×
c
)
,
a
∣
(
x
b
+
y
c
)
a | (b \times c),a | (xb + yc)
a∣(b×c),a∣(xb+yc),x,y为任意整数
若p为素数,
p
∣
a
b
p | ab
p∣ab,则
p
∣
a
p | a
p∣a或
p
∣
b
p | b
p∣b
###约数
对于一个正整数a,如果存在正整数d,满足
d
∣
a
d | a
d∣a,那么我们说d是a的约数
素数:大于1的自然数中,如果某个数的约数只有1和它本身,则这样的数称为素数
合数:一个正整数中,如果约数除了1和它本身,还有其他的整数,则这样的数称为合数
约数简单性质:
- 除非是平方数,一个数的约数是成对出现的
- 如果一个数的约数为奇数个,这个数一定是完全平方数
- 一个数的约数可以通过 O ( ( N ) ) O(\sqrt{(N)}) O((N))的方法内筛出
当然也有更不错的筛法,这里给出代码:
void func(int n) {
int k = 2;
while (n != k) {
while (n % i == 0) {
xx.push (i);
n /= i;
}
++ k;
}
}