Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 요소 목록의 가장 높은 공통 요소를 찾는 프로그램

<시간/>

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