Giả sử chúng ta có một danh sách các phần tử được gọi là num, chúng ta phải tìm giá trị dương lớn nhất chia cho mỗi số nguyên.
Vì vậy, nếu đầu vào là nums =[15, 81, 78], thì đầu ra sẽ là 3, vì 3 là số nguyên lớn nhất chia cho tất cả 15, 81 và 78.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
nếu kích thước của nums bằng 1, thì
-
trả về số [0]
-
-
div:=gcd trong số nums [0] và nums [1])
-
nếu kích thước của nums bằng 2, thì
-
trả về div
-
-
đối với tôi trong phạm vi từ 1 đến kích thước của nums - 2, thực hiện
-
div:=gcd của div và nums [i + 1]
-
nếu div giống 1 thì
-
trả về div
-
-
-
trả về div
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(nums): if len(nums) == 1: return nums[0] div = gcd(nums[0], nums[1]) if len(nums) == 2: return div for i in range(1, len(nums) - 1): div = gcd(div, nums[i + 1]) if div == 1: return div return div nums = [15, 81, 78] print(solve(nums))
Đầu vào
[15, 81, 78]
Đầu ra
3