(defun generate-dividends (l r ll rr) (sort (remove-duplicates (loop for i from l to r append (loop for j from ll to rr collect (/ i j)))) #'<)) (defun generate-differences (l r ll rr) (let ((a (generate-dividends l r ll rr))) (sort (remove-duplicates (mapcar #'- (rest a) a)) #'<)))