anchor.diff:  (test p24 (is (= 2783915460 (problem-24))))
   (test p25 (is (= 4782 (problem-25))))
   (test p26 (is (= 983 (problem-26))))
  +(test p27 (is (= -59231 (problem-27))))
  +(test p28 (is (= 669171001 (problem-28))))
   
   
   ;; (run! :euler)
  
positive.code:   (iterate (for i :from 1)
             (for v :first integer :then (* v integer))
             (finding i :such-that (= 1 (mod v modulus)))))
  
  
  ;;;; Problems -----------------------------------------------------------------
  
negative.code:                           (b :from -1000 :to 1000)))
               (finding (* a b) :maximizing (primes-produced a b)))))
  
  (defun problem-28 ()
    ;; Starting with the number 1 and moving to the right in a clockwise direction
    ;; a 5 by 5 spiral is formed as follows:
    ;;
    ;; 21 22 23 24 25
    ;; 20  7  8  9 10
    ;; 19  6  1  2 11
    ;; 18  5  4  3 12
    ;; 17 16 15 14 13
    ;;
    ;; It can be verified that the sum of the numbers on the diagonals is 101.
    ;;
    ;; What is the sum of the numbers on the diagonals in a 1001 by 1001 spiral
    ;; formed in the same way?
    (let* ((size 1001)
           (spiral (number-spiral size)))
      (+ (iterate (for x :from 0 :below size) ; \
                  (for y :from 0 :below size)
                  (summing (aref spiral y x)))
         (iterate (for x :from (1- size) :downto 0) ; /
                  (for y :from 0 :below size)
                  (summing (aref spiral y x)))
         ;; don't double-count the center...
         (- (aref spiral (truncate size 2) (truncate size 2))))))
  
  
  ;;;; Tests --------------------------------------------------------------------
  (def-suite :euler)
  