더북(TheBook)

연습문제 6-4

숫자 ab로 나눌 수 있고, a/bb의 거듭제곱이면 ab의 거듭제곱이다. 인자 ab를 받아서 ab의 거듭제곱이면 True를 반환하는 is_power 함수를 작성하라. 참고: 베이스 케이스를 고려해야 할 것이다.

 

연습문제 6-5

숫자 ab의 최대공약수(Greatest Common Divisor, GCD)는 나머지 없이 두 수를 나눌 수 있는 가장 큰 수를 말한다.

두 수의 GCD를 찾는 한 가지 방법은 ab로 나눌 때 r이 나머지이면 gcd(a, b) = gcd(b, r)를 관찰하는 것이다. gcd(a, 0) = a를 베이스 케이스로 사용할 수 있다.

ab를 인자로 받아서 두 수의 최대공약수를 반환하는 gcd 함수를 작성하라.

감사: 이 연습문제는 해럴드 애빌슨, 제럴드 제이 서스먼, 줄리 서스먼이 쓴 <컴퓨터 프로그램의 구조와 해석>(인사이트, 2016)의 예제를 기반으로 한 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.