primeCount :: Integer -> Integer primeCount n = fac n [2 .. ] where fac :: Integer -> [Integer] -> Integer fac n (x : xs) | x * x > n = if n /= 1 then 1 else 0 | n `rem` x == 0 = (fac (n `quot` x) (x : xs)) + 1 | otherwise = fac n xs main = do n <- readLn :: IO Integer putStrLn $ if (primeCount n) >= 3 then "YES" else "NO"