Giả sử chúng ta có hai số a và b. Chúng ta phải tìm xem có bao nhiêu số nguyên dương là ước cho cả a và b.
Vì vậy, nếu đầu vào là a =288 b =240, thì đầu ra sẽ là 10 vì các ước chung là [1,2,3,4,6,8,12,16,24,48].
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- res:=0
- đối với tôi trong phạm vi từ 1 đến gcd (a, b) + 1, thực hiện
- nếu (a mod i) là 0 và (b mod i) là 0, thì
- res:=res + 1
- nếu (a mod i) là 0 và (b mod i) là 0, thì
- trả lại res
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
from math import gcd def solve(a, b): res = 0 for i in range(1, gcd(a,b)+1): if (a % i) == 0 and (b % i) == 0: res += 1 return res a, b = 288, 240 print(solve(a, b))
Đầu vào
288, 240
Đầu ra
10