아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

유클리드 호제법

면접 대비

시간 제한1초메모리 제한128 MB

요약
32767 이하의 두 양의 정수를 원래 유클리드 호제법으로 계산해 최대공약수를 구할 때까지 수행한 뺄셈 횟수를 셉니다.
난이도

쉬움10점 중 2점

유형
시뮬레이션, 수학
정답자
아직 제출이 없습니다

문제

유명한 유클리드 호제법은 《원론》 제7권에 나온다. 《원론》은 기원전 300년경 그리스 수학자 유클리드가 썼다. 프톨레마이오스 왕이 《원론》을 훑어보고는 기하학으로 가는 더 짧은 길이 없겠냐고 묻자, 유클리드가 "기하학에 왕도는 없습니다"라고 잘라 말했다는 이야기가 전한다. 《원론》이 열세 권이나 되니 왕이 지름길을 찾은 것도 무리는 아니다. 이 책은 유클리드가 모은 수학 지식과 그가 직접 발견한 내용 일부로 이루어져 있다. 유클리드의 큰 업적은 그 자료를 하나의 유기적인 전체로 아름답게 체계화한 것이다. 《원론》은 이천 년 넘게 표준 교재로 남았다. (Asger Aaboe, Episodes from the Early History of Mathematics 참고)

오늘날의 유클리드 호제법은 보통 이렇게 적는다.

  1. AA와 BB는 A>B≥0A > B \geq 0인 정수다.
  2. B=0B = 0이면 최대공약수는 AA이고 알고리즘이 끝난다.
  3. 그렇지 않으면 A=qB+rA = qB + r이고 0≤r<B0 \leq r < B인 qq와 rr을 구한다. 이때 0≤r<B<A0 \leq r < B < A이고 gcd⁡(A,B)=gcd⁡(B,r)\gcd(A,B) = \gcd(B,r)이다. AA를 BB로, BB를 rr로 바꾸고 2단계로 돌아간다.

원래의 유클리드 호제법은 나눗셈 대신 뺄셈을 쓴다. 양의 정수 AA와 BB의 공약수는 min⁡(A,B)\min(A,B)와 max⁡(A,B)−min⁡(A,B)\max(A,B)-\min(A,B)의 공약수이기도 하다는 관찰에서 나온다. 그래서 두 양의 정수의 최대공약수를 이렇게 구할 수 있다.

  1. AA와 BB는 양의 정수다.
  2. A=BA = B이면 최대공약수는 BB이고 알고리즘이 끝난다.
  3. 그렇지 않으면 AA를 max⁡(A,B)−min⁡(A,B)\max(A,B)-\min(A,B)로, BB를 min⁡(A,B)\min(A,B)로 바꾸고 2단계로 돌아간다.

A=24A = 24, B=15B = 15에서 출발하면 원래의 호제법은 다음 순서로 진행한다.

  1. A=24−15=9A = 24-15 = 9, B=15B = 15
  2. A=15−9=6A = 15-9 = 6, B=9B = 9
  3. A=9−6=3A = 9-6 = 3, B=6B = 6
  4. A=6−3=3A = 6-3 = 3, B=3B = 3

즉 gcd⁡(24,15)=3\gcd(24,15) = 3을 얻기까지 3단계를 네 번 실행한다.

두 양의 정수가 주어질 때, 원래의 유클리드 호제법이 3단계를 몇 번 실행하는지 구하라.

입력

첫째 줄에 양의 정수 두 개가 공백 하나 이상으로 구분되어 주어진다. 두 정수 모두 32767보다 크지 않다.

출력

첫째 줄에 원래의 유클리드 호제법이 3단계를 실행하는 횟수를 출력한다.

예제1

  1. 예제 1

    입력
    24 15
    
    예상 출력
    4