diff --git a/47/euler47.rkt b/47/euler47.rkt new file mode 100644 index 0000000..0c27b85 --- /dev/null +++ b/47/euler47.rkt @@ -0,0 +1,22 @@ +#lang racket + +(require math/number-theory) + +(define (primefactors x) + (if (prime? x) + (list x) + (for/or ((i (cons 2 (range 3 (+ 1 (ceiling (sqrt x))) 2))) + #:when (prime? i) + #:when (zero? (remainder x i))) + (cons i (primefactors (quotient x i)))))) + +(define (recur x) + (if (and + (equal? (length (remove-duplicates (primefactors x))) 4) + (equal? (length (remove-duplicates (primefactors (+ x 1)))) 4) + (equal? (length (remove-duplicates (primefactors (+ x 2)))) 4) + (equal? (length (remove-duplicates (primefactors (+ x 3)))) 4)) + x + (recur (+ x 1)))) + +(recur 2) \ No newline at end of file