昨天数论20点关闭,我一直没看进度条还以为还是今天晚上关,所以做的少了一点,心里还是怪不舒服,今天看了看数论的书,看了几个博客和题目,上个数论的总结也有更新。这里也另外补充一些。这组专题应用比较多的有:快速幂,解线性同余方程,分解定理。
解线性同余方程,即不互质的中国剩余定理,这个知识点看了很久才明白些,应用还是比较多的,
题目:hdu - 1788 - Chinese remainder theorem again,hdu - 3579 - Hello Kiki,HDU - 1573 - X问题
威尔逊定理给出了判定一个自然数是否为素数的充分必要条件。即:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p )
佩尔方程:
解 类型方程的一种算法,就是x^2-d*y^2=1的第一个解x0,y0已知的话,其余的值有一个递推公式了:
X(n)=X(n-1)*x0+d*Y(n-1)*y0,Y(n)=X(n-1)*y0+Y(n-1)*x0;
题目:POJ - 1320 - Street Numbers
原根:
x是p的原根是说{ (x i mod p) | 1 <= i <= p-1 } 等于 { 1, ..., p-1 }.
性质:模m有原根的充要条件是m= 1,2,4,p,2p,p^n,其中p是奇质数,n是任意正整数。对正整数(a,m) = 1,如果 a 是模 m 的原根,当模m有原根时,它有φ(φ(m))个原根。
题目:poj - 1284 - Primitive Roots
欧拉定理:
在数论中,欧拉定理,(也称费马-欧拉定理)是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互质,则:
费马小定理:
a是不能被质数p整除的正整数,则有a^(p-1) ≡ 1 (mod p),证明这个定理非常简单,由于p是质数,所以有φ(p) = p-1,代入欧拉定理即可证明。推论:对于任意正整数a,有a^p ≡ a (mod p),因为a能被p整除时结论显然成立。
小于n且与n互质的数的和为n*Euler(n)/2。首先欧拉函数Euler(n)是求小于n且与n互质的数的个数,再有gcd的性质:如果gcd(n,i)=1,则gcd(n,n-i)=1那么,可以看做在[1,n-1]中与n互质的数是成对出现的,即如果i与n互质,则(n-i)也与n互质(Euler(n)为偶数)。而且可以发现这对数(i与n-i)的和为n。进一步得到结论:小于n且与n互质的数的和为n*Euler(n)/2;
再贴上看到他人整理的一些公式:
(1) 整数的唯一分解定理:
任意正整数都有且只有一种方式写出其素因子的乘积表达式。
A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn) 其中pi均为素数
(2) 约数和公式:
对于已经分解的整数A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)
有A的所有因子之和为
S = (1+p1+p1^2+p1^3+...p1^k1) * (1+p2+p2^2+p2^3+….p2^k2) * (1+p3+ p3^3+…+ p3^k3) * .... * (1+pn+pn^2+pn^3+...pn^kn)
(3) 同余模公式:
(a+b)%m=(a%m+b%m)%m
(a*b)%m=(a%m*b%m)%m
(4)用递归二分求等比数列1+pi+pi^2+pi^3+...+pi^n:
一、若n为奇数,一共有偶数项,则:
1 + p + p^2 + p^3 +...+ p^n
= (1+p^(n/2+1)) + p * (1+p^(n/2+1)) +...+ p^(n/2) * (1+p^(n/2+1))
这里将其分成两半,提后一半的公因式p^(n/2+1)
= (1 + p + p^2 +...+ p^(n/2)) * (1 + p^(n/2+1))
二、若n为偶数,一共有奇数项,则:
1 + p + p^2 + p^3 +...+ p^n
= (1+p^(n/2+1)) + p * (1+p^(n/2+1)) +...+ p^(n/2-1) * (1+p^(n/2+1)) + p^(n/2)
可知n-1为偶数,对前偶数项进行上述操作再加上最后一项p^n
= (1 + p + p^2 +...+ p^(n/2-1)) * (1+p^(n/2)) + p^n;
(5)反复平方法计算幂次式p^n
以p=2,n=8为例
常规是通过连乘法求幂,即2^8=2*2*2*2*2*2*2*2
这样做的要做8次乘法
而反复平方法则不同,
定义幂sq=1,再检查n是否大于0,
While,循环过程若发现n为奇数,则把此时的p值乘到sq
{
n=8>0 ,把p自乘一次, p=p*p=4 ,n取半 n=4
n=4>0 ,再把p自乘一次, p=p*p=16 ,n取半 n=2
n=2>0 ,再把p自乘一次, p=p*p=256 ,n取半 n=1,sq=sq*p
n=1>0 ,再把p自乘一次, p=p*p=256^2 ,n取半 n=0,弹出循环
}
则sq=256就是所求,显然反复平方法只做了3次乘法
(6)费马小定理
费马小定理是数论中的一个重要定理,其内容为: 假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p)。即:假如a是整数,p是质数,且a,p互质,那么a的(p-1)次方除以p的余数恒等于1。