数论知识点:
约数个数和约数和公式(例题:POJ1845 分治思想):
质因数分解 p1^k1xp2^k2xp3^k3...pn^kn
约数个数和:(1+k1)(1+k2)...(1+kn)
所有约数和=(1+p1+p1^2+...+p1^k1)...(1+pn+pn^2+...+pn^kn)
求和方法:因式分解+分治
或者等比数列求和+拓展GCD求逆元
欧拉定理:若GCD(x,y)≡1,则x^(φ(y))≡1(mode y)
特殊:费马小定理:若y是质数,且x,y互质,则x^(y-1)≡1 (mode y)
推论:降幂公式:若GCD(x,y)≡1,则a^x≡a^(x%φ(y))(mode y)
若GCD(x,y)≠ 1,则a^x≡a^(x%φ(y)+φ(y))(mode y)
欧拉函数:φ(x),其中若x为质数,则φ(x)=x-1,且欧拉函数为积性函数(人话:可以线性筛!!!)
gcd与lcm:GCD(x,y)xLCM(x,y)=xy
拓展GCD:ax≡y (mod p)
刚刚写计算器,发现我对拓展gcd的理解出现了漏洞......
(我发现我忽略了使用拓展gcd的第一步,上来就递归......)
使用拓展gcd步骤如下:
给定不定方程ax≡y(mode p)
首先求gcd(a,p)=t ①
若y mode t !=0,则原方程无整数解
若y mode t = 0,则:
a/=t,y/=t,p/=t ②
即将原方程化为a0x+p0z=y0的形式