数论初步——欧几里得算法和唯一分解定理

时间:2021-03-02 05:51:33

具体内容参见紫书p310-p312

一、辗转相除法

  • 恒等式:gcd(a,b) = gcd(b,a%b)
  • 边界条件:gcd(a,0) = a

 

辗转相除法的关键(恒等式)和边界条件一起构成了下面的程序:

int gcd(int a, int b)
{
return b == 0 ? a : gcd(b, a%b);
}

 

  这个算法称为欧几里得算法!!!!

 

二、求lcm

  • 公式:gcd(a,b) * lcm(a,b) = a * b

正确的写法(先除后乘):lcm(a,b) = a / gcd(a,b) * b