document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #lang racket
  2. (require math/number-theory)
  3.  
  4. (define (fermat-1? n)
  5.   (exact? (sqrt (apply + (divisors (* n n n))))))
  6.  
  7. (define (list-fermat-1 limit)
  8.   (filter fermat-1? (range 1 (+ 1 limit))))
  9.  
  10. (define (fermat-1-partner n)
  11.   (sqrt (apply + (divisors (* n n n)))))
  12.  
  13.  
  14.  
  15. (define (fermat-2? n)
  16.   (let-values ([(croot remainder)
  17.                 (integer-root/remainder (apply + (divisors (* n n))) 3)])
  18.     (= 0 remainder)))
  19.  
  20. (define (fermat-2-partner n)
  21.   (integer-root (apply + (divisors (* n n))) 3))
  22.  
  23. (define (list-fermat-2 limit)
  24.   (map (lambda (x) (cons x (fermat-2-partner x)))
  25.        (filter fermat-2? (range 1 (+ 1 limit)))))
');