这两天学离散数学,看网上的视频,从数论开始讲的,里面涉及到了一些感觉对ACM数论有帮助的式子,记下来:
已知a,b的唯一质因数分解:
GCD分解:
素因子相乘取小数
这个的意思用例子说明吧:
12=2^2 * 3^1 * 5^0 ;
15=2^0 * 3^1 * 5^1;
则GCD(12,15)= 2^0 * 3^1 * 5^0 =3;
感觉挺有用的
/*----------------------------------------------------------------------------------------------*/
LCM分解:
素因子相乘取大数
例:
12=2^2 * 3^1 * 5^0 ;
15=2^0 * 3^1 * 5^1;
LCM(12,15)=2^2 * 3^1 * 5^1=60;
/*----------------------------------------------------------------------------------------------*/
GCD(a,b)*LCM(a,b)=a*b;
未知a,b的唯一质因数分解:
欧几里得算法(Euclidean Algorithm) 与 贝祖等式(Bezout's Equation)
欧几里得算法(辗转相除法):
定理:
GCD(int a,int b)
{
if(b==0)
return a;
else
return GCD(b,a%b);
}
贝祖等式
对于不全为0的整数a,b,d,方程sa+td=d存在整数解s和t当且仅当GCD(a,b)|d;
回代发:sa+tb=GCD(a,b)存在整数解,设s0,t0;
若d=k*GCD(a,b),则k*s0,k*t0是方程的一个解。
若方程sa+tb=d存在整数解s和t,则GCD(a,b)|(sa+td)=d