bitCode

1090

유클리드 호제법을 이용한 최대 공약수 구하기

바른코드 0 제출 0 성공률 0.0%

출처 · cberi:1505

문제정보

1s 128MB

문제

유클리드 호제법은 2개의 자연수의 최대 공약수를 구하는 알고리즘입니다. 호제법이란 두 수가 서로 상대방 수를 나누어 원하는 결과를 얻는 방법을 말합니다. 자연수 a, b에 대해서 ab로 나눈 나머지를 r이라고 한다면, a, b의 최대 공약수는 br의 최대 공약수가 됩니다. , br로 나눈 나머지를 r1이라고 한다면, a, b의 최대 공약수는 r, r1의 최대 공약수와 같습니다. 이 과정을 반복해 나머지가 0이 되면, 이때 나누는 수가 최대 공약수가 됩니다. 이를 이용하여 a, b의 최대 공약수를 구하는 프로그램을 작성해 봅시다.

입력형식

첫 줄에 자연수 a, b가 입력됩니다. (1a,b100)

출력형식

a, b의 최대 공배수를 출력하시오.

힌트

유클리드 호제법은 컴퓨터를 이용하여 최대 공약수를 간단히 구할 수 있습니다.
이때 ab중 나누는 수와 나누어지는 수로 선택해야하는지를 고민할 수 있습니다. 하지만 그 순서는 크게 상관이 없습니다.
12 % 16 = 12 가 됩니다. 따라서 다음 계산은
16 % 12 = 4 가 됩니다.
12 % 4 = 0 이 되며
나머지가 0이 되었으므로 이때 나누는 수 4가 최대 공약수가 됩니다.
코드는 다음과 같습니다.
while(b!=0){
    c = a%b
    a = b
    b = c
}
이때 답은 a가 됩니다.

예시 1

입력예시

97 27

출력예시

1