素数是大于1的正整数,且除了1和它本身不能被其他正整数整除
证明:
假设素数有限,设它们从小到大为 p 1 , p 2 , … … , p n p1,p2,……,pn p1,p2,……,pn
令 S S S = p 1 p 2 … p n + 1 p1p2…pn+1 p1p2…pn+1
(1)若 S S S为素数, S S S > p p p n _n n,与假设矛盾
(2)若 S S S为合数, S S S不能被已知素数整除,与定义矛盾
故假设错误,素数是无限的
void prime(int N) {
for(int i = 1; i <= N; i++) {
if(!vis[i]) prime[++cnt] = i;//没被筛掉,判为素数
for(int j = 1; j <= cnt && i*prime[j] <= N; j++){//枚举素数
vis[i * prime[j]] = 1; //标记合数
if(i % prime[j] == 0) break;//每一个数都只被最小质因数筛掉
}
}
}
设函数 π \pi π(x)表示不超过正实数 x x x的素数个数
素数定理: π \pi π(x) ≈ \approx ≈ x l o g x \frac{x}{log_x} logxx
筛素数开数组,开 1 10 \frac{1}{10} 101的空间即可
算术基本定理:每个大于 1 的正整数都可以被唯一地写成若干素数的乘积(不考虑负数)
把一个数写成素数相乘的形式的式子称为素因子分解式(连乘号)
n = ∏ \prod ∏pi q i ^{qi} qi
约数个数定理:设 n n n = = = ∏ \prod ∏pi q i ^{qi} qi, n n n的约数个数是 d ( n ) d(n) d(n) = = = ∏ \prod ∏ q i + 1 qi+1 qi+1
a = ∏ \prod ∏pi x i ^{xi} xi
b = ∏ \prod ∏pi y i ^{yi} yi
(a,b) = gcd(a,b) = ∏ \prod ∏pi m i n ( x i , y i ) ^{min(xi,yi)} min(xi,yi)
{a,b} = lcm(a,b) = ∏ \prod ∏pi m a x ( x i , y i ) ^{max(xi,yi)} max(xi,yi)
求下列方程的正整数的解个数
1 x \frac{1}{x} x1+ 1 y \frac{1}{y} y1= 1 n \frac{1}{n} n1
1 x \frac{1}{x} x1+ 1 y \frac{1}{y} y1= 1 n \frac{1}{n} n1
= = > ==> ==> ( x − n ) ( y − n ) = (x-n)(y-n)= (x−n)(y−n)= n 2 n^{2} n2
求出 n 的素因子分解式,用约数个数定理算