anchor.diff:             (finding i :such-that (= 1 (mod v modulus)))))
   
   
  -(defun number-spiral (size)
  -  ;; See problem 28
  -  (assert (oddp size) (size))
  -  (flet ((turn (dx dy)
  -           (cond
  -             ((and (= dx  1) (= dy  0)) (values  0  1))
  -             ((and (= dx -1) (= dy  0)) (values  0 -1))
  -             ((and (= dx  0) (= dy  1)) (values -1  0))
  -             ((and (= dx  0) (= dy -1)) (values  1  0)))))
  -    (iterate
  -      (with array = (make-array (list size size)))
  -      (with i = 1)
  -      (with x = (floor (/ size 2)))
  -      (with y = (floor (/ size 2)))
  -      (with dx = 1)
  -      (with dy = 0)
  -      (initially (setf (aref array y x) i))
  -      (for counter :from 1 :by 1/2)
  -      (for run-length = (truncate counter))
  -      (iterate (repeat run-length)
  -               (incf i)
  -               (incf x dx)
  -               (incf y dy)
  -               (if (and (in-range-p 0 x size)
  -                        (in-range-p 0 y size))
  -                 (setf (aref array y x) i)
  -                 (return-from number-spiral array)))
  -      (setf (values dx dy) (turn dx dy)))))
  +(defun number-spiral-corners (size)
  +  "Return a list of the corner values of a 'number spiral' of size `size`.
  +
  +  `size` must be odd.  The order of the corners in the resulting list is
  +  unspecified.
  +
  +  Note that the \"spiral\" of size one has just a single \"corner\": `1`.
  +
  +  "
  +  (assert (oddp size))
  +  (if (= 1 size)
  +    (list 1)
  +    (let ((leg (1- size))
  +          (final (square size)))
  +      (list (- final (* 0 leg))
  +            (- final (* 1 leg))
  +            (- final (* 2 leg))
  +            (- final (* 3 leg))))))
   
   
   (defun truncate-number-left (n amount &optional (radix 10))
  
positive.code: (test p55 (is (= 249 (problem-55))))
  (test p56 (is (= 972 (problem-56))))
  (test p57 (is (= 153 (problem-57))))
  
  (test p74 (is (= 402 (problem-74))))
  (test p145 (is (= 608720 (problem-145))))
  
  
  ;; (run! :euler)
  
negative.code:   ;;
    ;; What is the sum of the numbers on the diagonals in a 1001 by 1001 spiral
    ;; formed in the same way?
    (iterate (for size :from 1 :to 1001 :by 2)
             (summing (apply #'+ (number-spiral-corners size)))))
  
  (defun problem-29 ()
    ;; Consider all integer combinations of a^b for 2 ≤ a ≤ 5 and 2 ≤ b ≤ 5:
  