55 lines
1.6 KiB
Text
55 lines
1.6 KiB
Text
(de pali? (N)
|
|
(let N (chop N)
|
|
(= N (reverse N)) ) )
|
|
(de lychrel (A)
|
|
(let
|
|
(R NIL
|
|
Lst
|
|
(make
|
|
(for X A
|
|
(let (N X C 500)
|
|
(while
|
|
(and
|
|
(inc 'N (format (flip (chop N))))
|
|
(gt0 (dec 'C))
|
|
(not (pali? N)) ) )
|
|
(and (=0 C) (link X) ) ) ) )
|
|
Lst22
|
|
(by
|
|
'((N)
|
|
(let (X N C 3)
|
|
(prog1
|
|
(bool
|
|
(or
|
|
(member (+ N (format (flip (chop N)))) R)
|
|
(find
|
|
'((N) (member N R))
|
|
(make
|
|
(do C
|
|
(link (inc 'X (format (flip (chop X))))) ) ) ) ) )
|
|
(do C
|
|
(push1
|
|
'R
|
|
(inc 'N (format (flip (chop N)))) ) ) ) ) )
|
|
group
|
|
Lst )
|
|
P (filter pali? Lst) )
|
|
(prinl
|
|
"Using n = 1..10000 and limiting each search to 500 reverse-digits-and-adds" )
|
|
(prinl
|
|
" Number of Lychrel numbers: "
|
|
(length (car Lst22)) )
|
|
(prin " Lychrel numbers: ")
|
|
(println (car Lst22))
|
|
(prinl
|
|
" Number of Lychrel related: "
|
|
(length (cadr Lst22)) )
|
|
(prinl
|
|
" Number of Lychrel palindroms: "
|
|
(length P) )
|
|
(prin " Lychrel palindromes: ")
|
|
(println P) ) )
|
|
|
|
(lychrel 10000)
|
|
|
|
(bye)
|