유클리드
면접 대비시간 제한2초메모리 제한512 MB
공백으로 구분된 32767 이하의 두 양의 정수를 읽고 최대공약수를 출력합니다.
- 난이도
쉬움10점 중 2점
- 유형
- 정수론
- 정답자
- 아직 제출이 없습니다
문제
널리 알려진 유클리드 호제법은 『원론』 제7권에 실려 있다. 『원론』은 기원전 300년에 그리스 수학자 유클리드가 쓴 책이다. 프톨레마이오스 왕이 『원론』을 훑어보고는 기하학을 배우는 더 짧은 길이 없겠냐고 기대를 담아 물었는데, 유클리드는 “기하학에 왕도는 없습니다”라고 단호하게 답했다는 이야기가 전해진다. 『원론』이 무려 열세 권이니 왕이 지름길을 찾은 것도 무리는 아니다. 이 책은 유클리드가 모아 정리한 수학 지식과 그가 직접 발견한 내용으로 이루어져 있다. 유클리드의 큰 업적은 그 재료를 하나의 유기적인 전체로 아름답게 체계화했다는 점이다. 『원론』은 이천 년 넘게 표준 교재 자리를 지켰다.
본래의 유클리드 호제법은 뺄셈만으로 두 양의 정수 와 의 최대공약수를 구한다. 와 의 공약수가 와 의 공약수이기도 하다는 성질을 쓴다. 그래서 와 의 최대공약수를 다음과 같이 구한다.
- 이면 최대공약수는 이고, 알고리즘을 끝낸다.
- 를 로, 를 로 바꾼다. 1번으로 돌아간다.
본래의 유클리드 호제법을 쓰든 다른 방법을 쓰든, 두 양의 정수의 최대공약수를 구하라.
, 일 때 본래의 유클리드 호제법은 이런 순서로 값을 바꾼다.
- ,
- ,
- ,
- ,
즉 이다.
입력
입력은 한 줄이다. 이 줄에는 공백으로 구분한 두 양의 정수가 있고, 각 정수는 32767 이하이다.
출력
주어진 두 양의 정수의 최대공약수를 정수 하나로 출력한다.