본문 바로가기

LISP?

합성수를 소수(prime number)인 두 수의 합으로 나타내기

1
2
3
4 = (+ 2 2)
5
6 = (+ 3 3)
7
8 = (+ 3 5)
9 = (+ 2 7)
10 = (+ 3 7), (+ 5 5)
11
12 = (+ 3 9), (+ 5 7)
13
14 = (+ 3 11), (+ 7 7)
15 = (+ 2 13)
16 = (+ 3 13), (+ 5 11)
17
18 = (+ 5 13), (+ 7 11)
19
20 = (+ 3 17), (+ 7 13)
21 = (+ 2 19)
22 = (+ 3 19), (+ 5 19), (+ 11, 11)
23
24 = (+ 5 19), (+ 7 17), (+ 11 13)
25 = (+ 2 23)
26 = (+ 3 23), (+ 7 19), (+ 13 13)
27 = (+ )
28 = (+ 5 23), (+ 11 17)
29
30 = (+ 7 23), (+ 11 19), (+ 13 17)
31
32 = (+ 3 29), (+ 13 19)
33 = (+ 2 31)
34 = (+ 3 31), (+ 5 29), (+ 11 23), (+ 17 17)
35 = (+ )

x 보다 작은 prime number 중 두 개를 선택하여 더했을 때 x가 나오게 하는 그 두 수는?


 (defun sum-5-x (a b)
              (if (> a b)
                  0
                (+ (* a a a a a) (sum-5-x (+ a 1) b))))
(sum-5-x 1 3)
276