Note: Đây là cách hiểu của mình, ko phải phát biểu thuật toán. Thuật toán được trình bày ở dạng ngôn ngữ tự nhiên và có code demo, còn tính đúng đắn đã được Euclid chứng minh, khỏi bàn cãi.
Thuật toán tìm ƯỚC SỐ CHUNG LỚN NHẤT của 2 số a và b:
Cách 1 (trừ dần):
Bước 1: so sánh a và b
- Nếu a > b: thì lấy a – b rồi gán cho a. Quay về bước 1
- Nếu a < b: thì lấy b – a rồi gán cho b. Quay về bước 1
- Nếu a = b: nhảy sang bước 2.
Code demo:
while (a != b)
{
if (a > b)
a = a - b;
else
b = b - a;
}
return a;