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

파이썬에서 두 숫자의 공약수를 세는 프로그램

<시간/>

두 개의 숫자와 b가 있다고 가정합니다. 우리는 와 b의 제수인 양의 정수가 몇 개 있는지 찾아야 합니다.

따라서 입력이 a =288 b =240과 같으면 공약수가 [1,2,3,4,6,8,12,16,24,48]이기 때문에 출력은 10이 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • res :=0
  • gcd(a, b) + 1 범위의 i에 대해
    • (a mod i)가 0이고 (b mod i)가 0이면
      • res :=res + 1
  • 반환 결과

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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))

입력

288, 240

출력

10