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 aa và bb là số nguyên dương lớn nhất chia hết cả aa và bb. 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 aa và bb nếu dd chia hết cả aa và bb, ký hiệu d∣ad | a và d∣bd | b.
  • Ước chung lớn nhất (UCLN): UCLN của aa và bb, 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 aa và bb.
    2. Mọi ước chung d′d' của aa và bb đều là ước của dd (d′∣dd' | 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,amod  b)\text{UCLN}(a, b) = \text{UCLN}(b, a \mod b)

trong đó amod  ba \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 mm và nn sao cho:

a=mda = md b=ndb = nd

Gọi r=amod  br = 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à 0≤r<b0 \le r < b.

Thay aa và bb vào, ta được:

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

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

Ngược lại, giả sử d′d' là ước chung của bb và rr. Khi đó, tồn tại các số nguyên xx và yy sao cho:

b=xd′b = xd' r=yd′r = yd'

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

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

Vậy d′d' là ước của aa. Suy ra d′d' là ước chung của aa và bb.

Do đó, tập các ước chung của (a,b)(a, b) và (b,amod  b)(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,amod  b)\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 aa và bb (a≥ba \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 b≠0b \ne 0, gán a←ba \leftarrow b và b←amod  bb \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=2⋅462+1471071 = 2 \cdot 462 + 147 -> UCLN(1071,462)=UCLN(462,147)\text{UCLN}(1071, 462) = \text{UCLN}(462, 147)
  2. 462=3⋅147+21462 = 3 \cdot 147 + 21 -> UCLN(462,147)=UCLN(147,21)\text{UCLN}(462, 147) = \text{UCLN}(147, 21)
  3. 147=7⋅21+0147 = 7 \cdot 21 + 0 -> UCLN(147,21)=UCLN(21,0)\text{UCLN}(147, 21) = \text{UCLN}(21, 0)
  4. Vì 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 aa và bb, 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ì aa và bb 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 xx và yy 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