B. Pym
2024-09-14 23:18:36 UTC
"A palindromic number reads the same both ways. The largest
palindrome made from the product of two 2-digit numbers is 9009
= 91 x 99. Find the largest palindrome made from the product of
two 3-digit numbers."
Gauche Schemepalindrome made from the product of two 2-digit numbers is 9009
= 91 x 99. Find the largest palindrome made from the product of
two 3-digit numbers."
(use srfi-13) ;; string-reverse
(define (divisor? n m) (= 0 (mod m n)))
"We don't need no stinkin' loops!"
(define (prod-of-3-dig-nums? n)
(let1 sq (exact-integer-sqrt n)
(any (is divisor? n) (lrange sq 999))))
(define (good? n)
(let1 s (number->string n)
(and (equal? s (string-reverse s))
(prod-of-3-dig-nums? n))))
(find good? (lrange 998001 0 -1))
===>
906609
Given:
(define-syntax is
(syntax-rules ()
[(is x)
(lambda (y) (equal? y x))]
[(is compare x)
(lambda (y) (compare y x))]
[(is key compare x)
(lambda (y) (compare (key y) x))]))