| From: Matthias Felleisen (matthias at ccs.neu.edu) Date: Sun Mar 11 19:14:38 EDT 2012 |
|
I believe the code below cuts your running time to one third. -- Matthias
#lang racket
(require srfi/13)
(define (euler4e)
(for*/fold ([greatest 0]) ([first (in-range 101 1000)] [second (in-range first 1000)])
(define prod (* first second))
(if (palindromic? prod) (max greatest prod) greatest)))
(define (palindromic? n)
(define s (number->string n))
(define r (string-reverse s))
(string=? s r))
| Posted on the users mailing list. |
|