Login
7 branches 0 tags
Ben (X13/Arch) Added verbose flag to (assemble*) 70d148f 2 years ago 960 Commits
nujel / benchmark / euler4 / nujel.nuj
;; The biggest product of 2 3-digit numbers that is a palindrome
;; https://projecteuler.net/problem=4

(defn reverse-num (a)
      (def ret 0)
      (while (> a 0)
             (set! ret (+ (* ret 10) (rem a 10)))
             (set! a (div/int a 10)))
      (return ret))

(defn palindrome? (a)
      (== a (reverse-num a)))

(defn bench-run ()
  (def max 0)
  (dotimes (a 1000 max)
    (dotimes (b 1000)
      (def p (* a b))
      (when (and (palindrome? p)
                 (> p max))
        (set! max p)))))

(pfmtln "The biggest product of 2 3-digit numbers that is a palindrome is: {}" (bench-run))