Quay lại danh sách
MATHKhối 1023/05/2025

Thuật toán Euclid UCLN

Tài liệu học tập: Thuật toán Euclid tìm UCLN

1. Giới thiệu

Ước chung lớn nhất (UCLN) của hai số nguyên aabb là số nguyên dương lớn nhất chia hết cả aabb. Việc tìm UCLN có nhiều ứng dụng trong Toán học và Tin học, đặc biệt trong các bài toán về phân số, đồng dư và mã hóa. Thuật toán Euclid là một phương pháp hiệu quả để tìm UCLN của hai số nguyên, được phát triển từ thời Hy Lạp cổ đại.

2. Định nghĩa và Kí hiệu

  • Ước chung (ƯC): Số nguyên dd là ước chung của aabb nếu dd chia hết cả aabb, ký hiệu dad | adbd | b.
  • Ước chung lớn nhất (UCLN): UCLN của aabb, ký hiệu UCLN(a,b)\text{UCLN}(a, b), là số nguyên dương dd thỏa mãn:
    1. dd là ước chung của aabb.
    2. Mọi ước chung dd' của aabb đều là ước của dd (ddd' | d).

3. Thuật toán Euclid

3.1. Nguyên lý cơ bản

Thuật toán Euclid dựa trên một tính chất quan trọng của UCLN:

UCLN(a,b)=UCLN(b,amodb)\text{UCLN}(a, b) = \text{UCLN}(b, a \mod b)

trong đó amodba \mod b là phần dư của phép chia aa cho bb.

Chứng minh:

Giả sử d=UCLN(a,b)d = \text{UCLN}(a, b). Khi đó, tồn tại các số nguyên mmnn sao cho:

a=mda = md b=ndb = nd

Gọi r=amodbr = a \mod b. Theo định nghĩa phép chia có dư, ta có:

a=qb+ra = qb + r

với qq là thương và 0r<b0 \le r < b.

Thay aabb vào, ta được:

md=q(nd)+rmd = q(nd) + r r=mdqnd=(mqn)dr = md - qnd = (m - qn)d

Vậy dd là ước của rr. Suy ra dd là ước chung của bbrr.

Ngược lại, giả sử dd' là ước chung của bbrr. Khi đó, tồn tại các số nguyên xxyy sao cho:

b=xdb = xd' r=ydr = yd'

Từ a=qb+ra = qb + r, ta có:

a=q(xd)+yd=(qx+y)da = q(xd') + yd' = (qx + y)d'

Vậy dd' là ước của aa. Suy ra dd' là ước chung của aabb.

Do đó, tập các ước chung của (a,b)(a, b)(b,amodb)(b, a \mod b) là như nhau. Vậy ước chung lớn nhất của chúng cũng bằng nhau:

UCLN(a,b)=UCLN(b,amodb)\text{UCLN}(a, b) = \text{UCLN}(b, a \mod b)

3.2. Mô tả thuật toán

Để tìm UCLN của hai số nguyên dương aabb (aba \ge b), thuật toán Euclid thực hiện các bước sau:

  1. Nếu b=0b = 0, thì UCLN(a,b)=a\text{UCLN}(a, b) = a. Kết thúc thuật toán.
  2. Nếu b0b \ne 0, gán aba \leftarrow bbamodbb \leftarrow a \mod b.
  3. Quay lại bước 1.

3.3. Ví dụ minh họa

Tìm UCLN(1071,462)\text{UCLN}(1071, 462):

  1. 1071=2462+1471071 = 2 \cdot 462 + 147 -> UCLN(1071,462)=UCLN(462,147)\text{UCLN}(1071, 462) = \text{UCLN}(462, 147)
  2. 462=3147+21462 = 3 \cdot 147 + 21 -> UCLN(462,147)=UCLN(147,21)\text{UCLN}(462, 147) = \text{UCLN}(147, 21)
  3. 147=721+0147 = 7 \cdot 21 + 0 -> UCLN(147,21)=UCLN(21,0)\text{UCLN}(147, 21) = \text{UCLN}(21, 0)
  4. b=0b = 0 nên UCLN(21,0)=21\text{UCLN}(21, 0) = 21.

Vậy UCLN(1071,462)=21\text{UCLN}(1071, 462) = 21.

4. Tính chất

  • Tính chất đối xứng: UCLN(a,b)=UCLN(b,a)\text{UCLN}(a, b) = \text{UCLN}(b, a)
  • UCLN của số với 0: UCLN(a,0)=a\text{UCLN}(a, 0) = |a|
  • UCLN của số với chính nó: UCLN(a,a)=a\text{UCLN}(a, a) = |a|
  • UCLN của hai số nguyên tố cùng nhau: UCLN(a,b)=1\text{UCLN}(a, b) = 1
  • Tính chất mở rộng: Nếu dd là một ước chung của aabb, thì dd cũng là ước của UCLN(a,b)\text{UCLN}(a, b).

5. Ứng dụng

Thuật toán Euclid có nhiều ứng dụng trong Toán học và Tin học, bao gồm:

  • Rút gọn phân số: UCLN được sử dụng để rút gọn phân số về dạng tối giản. Ví dụ, để rút gọn phân số 1071462\frac{1071}{462}, ta tìm UCLN(1071,462)=21\text{UCLN}(1071, 462) = 21, sau đó chia cả tử và mẫu cho 21, ta được 1071462=1071/21462/21=5122\frac{1071}{462} = \frac{1071/21}{462/21} = \frac{51}{22}.
  • Giải phương trình Diophantine tuyến tính: Thuật toán Euclid mở rộng có thể được sử dụng để tìm nghiệm của phương trình Diophantine dạng ax+by=cax + by = c.
  • Mật mã học: UCLN đóng vai trò quan trọng trong một số thuật toán mã hóa, chẳng hạn như RSA.
  • Kiểm tra tính nguyên tố cùng nhau: Nếu UCLN(a,b)=1\text{UCLN}(a, b) = 1, thì aabb là nguyên tố cùng nhau.

6. Bài tập áp dụng

  1. Tìm UCLN(252,105)\text{UCLN}(252, 105).
  2. Tìm UCLN(12345,6789)\text{UCLN}(12345, 6789).
  3. Rút gọn phân số 360840\frac{360}{840}.
  4. Chứng minh rằng nếu d=UCLN(a,b)d = \text{UCLN}(a, b), thì UCLN(ad,bd)=1\text{UCLN}(\frac{a}{d}, \frac{b}{d}) = 1.
  5. Tìm hai số nguyên xxyy sao cho 18x+48y=UCLN(18,48)18x + 48y = \text{UCLN}(18, 48). (Gợi ý: Sử dụng thuật toán Euclid mở rộng).

7. Tổng kết

Thuật toán Euclid là một công cụ mạnh mẽ và hiệu quả để tìm UCLN của hai số nguyên. Nó có nhiều ứng dụng trong Toán học, Tin học và các lĩnh vực khác. Việc nắm vững thuật toán này sẽ giúp bạn giải quyết nhiều bài toán phức tạp một cách dễ dàng và nhanh chóng.

Cần thêm bí kíp?

Khám phá hàng trăm thủ thuật học tập hiệu quả khác.

Xem tất cả thủ thuật