19 lines
495 B
Racket
19 lines
495 B
Racket
#lang racket
|
|
|
|
(require math/number-theory)
|
|
|
|
(define (prime*? n) (= (totient n) (sub1 n)))
|
|
|
|
(for ([n (in-range 1 26)])
|
|
(printf "φ(~a) = ~a~a~a\n"
|
|
n
|
|
(totient n)
|
|
(if (prime*? n) " is prime" "")
|
|
(if (prime? n) " (confirmed)" "")))
|
|
|
|
(for/fold ([count 0] #:result (void)) ([n (in-range 1 10001)])
|
|
(define new-count (if (prime*? n) (add1 count) count))
|
|
(when (member n '(100 1000 10000))
|
|
(printf "Primes up to ~a: ~a\n" n new-count))
|
|
new-count)
|