#X013. 최대공약수 구하기
최대공약수 구하기
문제
두 수를 입력받아 최대공약수(GCM)를 구하는 프로그램을 작성하시오.
입력
두 자연수 a, b
출력
최대 공약수(GCM)
24 9
3
힌트
두 자연수의 최대공약수(GCM) 구하는 방법
a. 두 자연수 중에서 큰 수를 작은 수로 나눈 나머지가 0이라면 GCM은 나눈 수(작은 수) 이다.
예) 자연수 24와 6의 GCM : mod(24, 6) = 0 ⇒ 나머지가 0이므로 작은 수 6이 GCM이다.
b. 두 자연수 중에서 큰 수(제수)를 작은 수(피제수)로 나눈 나머지가 0이 아니라면 나눈 수를 제수로 치환하고 나머지를 피제수로 치환하여 나머지를 구하는 방법으로 나머지가 0이 될 때 까지 수행하여 나머지가 0으로 떨어질 때의 제수가 두 자연수의 GCM이다.
예) 자연수 24와 9의 GCM
1회. mod(24, 9) = 6 : 나머지가 0이 아님
2회. mod(9, 6) = 3 : 1회의 피제수 9를 제수로 나머지 6을 피제수로 치환 ⇒ 나머지가 0이 아님
3회. mod(6, 3) = 0 : 2회의 피제수 6을 제수로 나머지 3을 피제수로 치환 ⇒ 나머지가 0
⇒ 나머지가 0으로 떨어진 3회의 피제수 3이 GCM이다.
출처
내가쓴 보조자료-알고리즘