事情是这样的,我是一个萌新,然后萌新初学数论。qvq 本篇文章的难度大概是gcd~莫比乌斯反演,说不定我还会写一点组合计数,容斥原理,线性代数的知识,当然,我估计我不会,因为咕咕。 文章以数学证明为主,代码都好理解,所有的运算以计算机运算法则为准。qvq( 人家的码风才不毒瘤 ) GCD&LCM 即最大公约数和最小公倍数,这里介绍 欧几里得 求gcd。 设(a,b)表示gcd(a,b)。 求证:gcd(a,b)=gcd(b,a%b) 证明: 设a=k1*c,b=k2*c且(k1,k2)=1. 则(a,b)=c. 设a%b=a-k3*b. 则有a%b=a-k3*b=k1*c-k3*k2*c=(k1-k2*k3)*c. 若(k2,k1-k2*k3)=1,(b,a%b)=c,则(a,b)=(b,b%a). 若(k2,k1-k2*k3)≠1,设k2=m1*d,k1-k2*k3=m2*d. 则(a,b)=(k3*m1*d*c+m2*d*c,m1*d*c)=dc≠c,则假设不成立。 综上所述,(a,b)=(b,a%b). 证毕. 特别地,当b=0的时候,(a,b)=a。 LCM的求法:lcm(a,b)=a*b/gcd(a,b).就不证明了。 来源: https://www.cnblogs.com/valentino/p/11641953.html