Deutsch English Français Italiano |
<vc55k8$1nud1$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "B. Pym" <Nobody447095@here-nor-there.org> Newsgroups: comp.lang.lisp,comp.lang.scheme Subject: palindromic number Date: Sat, 14 Sep 2024 23:18:36 -0000 (UTC) Organization: A noiseless patient Spider Lines: 37 Message-ID: <vc55k8$1nud1$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Injection-Date: Sun, 15 Sep 2024 01:18:37 +0200 (CEST) Injection-Info: dont-email.me; posting-host="0f43c1e237ee538ebdb678e0d9ed742f"; logging-data="1833377"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX185GFI7PQXnb1F24UnVbyln" User-Agent: XanaNews/1.18.1.6 Cancel-Lock: sha1:+MrsjK8VX7UXqmTcbsgmtKiQ6SA= Bytes: 1719 > "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 Scheme (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))]))