이 문제는 공짜로 풀어버린 느낌이에요. 본문에 코드도 다 나와있고 그냥 주어진 숫자를 넣어서 가장 작은 약수를 찾기만 하면 되니까요.
* 코드
(define (square x) (* x x))
(define (smallest-divisor n)
(find-divisor n 2))
(define (find-divisor n test-divisor)
(cond ((> (square test-divisor) n) n)
((divides? test-divisor n) test-divisor)
(else (find-divisor n (+ test-divisor 1)))))
(define (divides? a b)
(= (remainder b a) 0))
(define (prime? n)
(= n (smallest-divisor n)))
* 결과
> (smallest-divisor 199)
199
> (smallest-divisor 1999)
1999
> (smallest-divisor 19999)
7
199, 1999는 가장 작은 약수가 자기 자신이니까 소수입니다. 19999 는 작은 약수가 7이네요.
이 문제는 다음 문제들은 위한 떡밥인 듯... ㅎㅎ
* 코드
(define (square x) (* x x))
(define (smallest-divisor n)
(find-divisor n 2))
(define (find-divisor n test-divisor)
(cond ((> (square test-divisor) n) n)
((divides? test-divisor n) test-divisor)
(else (find-divisor n (+ test-divisor 1)))))
(define (divides? a b)
(= (remainder b a) 0))
(define (prime? n)
(= n (smallest-divisor n)))
* 결과
> (smallest-divisor 199)
199
> (smallest-divisor 1999)
1999
> (smallest-divisor 19999)
7
199, 1999는 가장 작은 약수가 자기 자신이니까 소수입니다. 19999 는 작은 약수가 7이네요.
이 문제는 다음 문제들은 위한 떡밥인 듯... ㅎㅎ


덧글
deisys 2008/09/23 07:24 # 삭제 답글
날로 먹으면 배탈이... >_<
지아 2008/09/23 11:41 #
이어지는 문제가 한두개가 아니라능...게다가 그닥 쉬워보이지도 않구요.. ㅋㅋ
날로 문제 하나 준 이유가 있었던게죠..
하야로비 2008/09/27 01:01 # 답글
음... 소스 코드는 어떻게 하면 이렇게 이쁘게 올릴 수 있는건가요...알려주세요~ ㅠㅠ
지아 2008/09/27 22:29 #
저도 컴키드님께 배운건데요..vim에서 html 파일을 만들어서 웹브라우저에 띄운 걸 복사해서 붙여넣으면 되요.. ㅎㅎ