lessen :
length [a| a <- [1..lessen(x)], mod x a /= 0] == x - 2
( ) lessen x. , x - 2 . , , ( , , haskell , ).
, - O(n), , .
isPrime. :
module Main where
main = putStrLn lastPrime
where
lastPrime :: String
lastPrime = show(last(take 10001 primes))
isPrime x = length [a| a <- [1..lessen(x)], mod x a /= 0] == x - 2]
primes :: [Int]
primes = [x| x <- [1..], isPrime x]
lessen :: Int -> Int
lessen a = ceiling(sqrt (fromIntegral a))
. . , isPrime, . lessen x ( , 2, 1 ), , , , - x. any, :
isPrime x = not (any (\a -> mod x a == 0) [2 .. lessen x])