(use math.prime) (let* ((n (read))) (let1 m (let loop ((primes *primes*) (m n) (num 0)) (let1 prime #?=(car primes) (cond ((< m (* prime prime)) num) ((small-prime? m) (+ num 1)) (else (if (= (mod m prime) 0) (loop primes (div m prime) (+ num 1)) (loop (cdr primes) m num)))))) (print (if (> m 2) "YES" "NO"))))