연습문제 1.26은 반으로 나누는 대신 expmod 프로시저를 두 번 호출하기에
결국 Θ(n)이 됩니다.
연습문제 1.27은 카마이클 수(Carmichael number)를 찾는 문제입니다.
찾는 방법은 앞에 있는 코드를 이용하여 만들었습니다.


코드는 위와 같게 만들었습니다.

위와 같이 확인해보았습니다.

제대로 확인이 됩니다.
이 방법은 페르마 방법으로 하면 다시 한 번 확인하는 것이라
소수일 경우에는 계산을 두 번합니다.
따라서 그리 좋지 못합니다.^^;;;;
카마이클 수에 대해 검색하니 일반식이 나온 듯싶네요.
그렇다면 미리 Carmichael number를 구한 다음에
소수를 구할 때 소수라 나오면 미리 구한 값들과 비교만 하면 되겠네요.^^
참조
Structure and Interpretation of Computer Programs 2/E - Page 71
"in OCW" 카테고리의 다른 글
- SICP Exercise 연습문제 1.31 (0)2008/01/21
- SICP Exercise 연습문제 1.30 (0)2008/01/21
- SICP Exercise 연습문제 1.29 (0)2008/01/21
- SICP Exercise 연습문제 1.27 (0)2008/01/19
- SICP Exercise 연습문제 1.25 (0)2008/01/17
- SICP Exercise 연습문제 1.24 (0)2008/01/17
- SICP Exercise 연습문제 1.23 (0)2008/01/17
글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.







댓글을 달아 주세요