Menu
CoddyTech

Greatest Common Divisor

Người mớiToán và mô phỏngpython iconjava iconcpp iconc iconjs icon+10

Bạn nhận được hai số nguyên dương a và b. Hãy trả về ước chung lớn nhất của chúng, tức là số nguyên lớn nhất chia hết cả hai số.

Ví dụ, các số chia hết cả 8 và 12 là 1, 2 và 4, vậy đáp án là 4.

Hàm

gcd(a: integer, b: integer) → integer
ainteger
số nguyên dương đầu tiên
binteger
số nguyên dương thứ hai
Trả vềinteger
số nguyên lớn nhất chia hết cả a và b

Ràng buộc

  • 1 ≤ a ≤ 109
  • 1 ≤ b ≤ 109

Ví dụ

Đầu vào
a = 12b = 18
Đầu ra
6
Giải thích
Các ước số của 12 là 1, 2, 3, 4, 6 và 12; các ước số của 18 là 1, 2, 3, 6, 9 và 18. Số lớn nhất có trong cả hai danh sách là 6.
challenge icon

Câu hỏi mở rộng

Bạn có thể mở rộng thuật toán Euclid để trả về cả hai số nguyên x và y sao cho a × x + b × y = gcd(a, b) không?

Đặt lại code
def gcd(a, b):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

a = 12
b = 18

Đầu ra mong đợi

6