nums라는 요소 목록이 있다고 가정하고 각 정수를 나누는 가장 큰 양수 값을 찾아야 합니다.
따라서 입력이 nums =[15, 81, 78]과 같으면 출력은 3이 됩니다. 3은 15, 81, 78을 모두 나누는 가장 큰 정수이기 때문입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
숫자의 크기가 1과 같으면
-
숫자 반환[0]
-
-
div :=nums[0] 및 nums[1]의 gcd)
-
숫자의 크기가 2와 같으면
-
div를 반환
-
-
범위 1에서 숫자 - 2까지의 i에 대해 수행
-
div :=div 및 nums의 gcd[i + 1]
-
div가 1과 같으면
-
div를 반환
-
-
-
div를 반환
예시
더 나은 이해를 위해 다음 구현을 살펴보겠습니다.
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))
입력
[15, 81, 78]
출력
3