Notice
Recent Posts
Recent Comments
준호씨의 블로그
python - 최대공약수 구하기 본문
반응형
공약수는 두 개 이상의 자연수가 공통으로 갖는 약수입니다.
예를 들어 4의 약수는 1,2,4, 6의 약수는 1,2,3,6입니다. 공약수는 1,2입니다. 최대공약수는 공약수들 중 가장 큰 수인 2입니다.
참고로 서로소란 최대공약수가 1인 두 자연수를 서로소라고 합니다. 3과 4는 최대공약수가 1입니다. 그러므로 3과 4는 서로소입니다.
python에서 최대공약수를 구할 때 gcd함수를 이용할 수 있습니다.
>>> from math import gcd
>>> gcd(4, 6)
2
유클리드 호제법을 이용하여 gcd를 직접 구현할 수 있습니다.
def gcd_my(a, b):
if b == 0:
return a
else:
return gcd_my(b, a % b)
배열의 숫자들의 최대공약수를 구하고 싶다면 다음과 같은 함수를 구현해 볼 수 있습니다.
def gcd_array(arr):
gcd_arr = None
for i in range(len(arr)):
if i == 0:
gcd_arr = arr[i]
else:
gcd_arr = gcd(gcd_arr, arr[i])
return gcd_arr
첫 번째 두 번째 숫자의 최대공약수를 구하고, 최대공약수와 세 번째 숫자의 최대공약수를 구하고, 최대공약수와 n번째 숫자의 최대공약수를 구하는 방식으로 반복문을 돌리면 됩니다.
반응형
'개발이야기' 카테고리의 다른 글
AsciiDoc과의 조우. MarkDown이랑 뭐가 달라? (0) | 2020.05.18 |
---|---|
centos - tmux 빌드해서 설치하기 (0) | 2020.05.13 |
IntelliJ - "No tests were found" 문제 해결. Spring Boot 2.2.6, JUnit5, Gradle (0) | 2020.05.04 |
워드프레스 계정 복구 (0) | 2020.04.02 |
tomcat9, servlet4 옛 방식인 web.xml 로 페이지 추가하기 (0) | 2020.03.30 |
Comments