1. 程式人生 > >數論初步——歐幾裏得算法和唯一分解定理

數論初步——歐幾裏得算法和唯一分解定理

turn 算法 true font 輾轉相除法 div 公式 分解 16px

具體內容參見紫書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

數論初步——歐幾裏得算法和唯一分解定理