[codeup] 4016 : 세 수의 최대공약수 구하기

SUNGJIN KIM·2022년 3월 17일
0

CODEUP

목록 보기
25/76
post-thumbnail

문제

https://codeup.kr/problem.php?id=4016

[문제 1] 세 수의 최대공약수 구하기 [16점]

(제한시간 1초, 부분점수 없음)

세 수 를 입력받아 세 수의 최대공약수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 세 수 가 주어진다.(단,1 <= a <= b <= c <= 100,000 )

입력 예시

4 8 10

출력

출력내용은 세 수 의 최대공약수를 출력한다.

출력 예시

2

문제 풀이

유클리드 호제법을 이용하여 문제를 풀면 쉽게 풀 수 있다.
두 수인 경우에는 (x,y) 를 나누고, 그 나머지값이 0이 아닌 경우 나머지값을 나누어 0이 될 때까지 진행하면 된다.

세 수인 경우에는 (x,y,z) 라고 했을때 ((x,y),z) 라고 생각하고 진행해도 무방하다.

위키 참고하며 코드를 작성하였다.
https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95

# https://codeup.kr/problem.php?id=4016

num_arr = list(map(int,input().split()))

def GCD(a,b):
    while b != 0:
        a, b = b, a%b
    return a

gcdnum = num_arr[0]
for i in range(len(num_arr)):
    gcdnum = GCD(gcdnum,num_arr[i])


print(gcdnum)
profile
#QA #woonmong

0개의 댓글