anchor.diff:                            (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)
  
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: (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)
  