๐Ÿ“ฆ schubart / euler

๐Ÿ“„ euler0007.hs ยท 11 lines
1
2
3
4
5
6
7
8
9
10
11primes = 2 : filter ((==1) . length . primeFactors) [3,5..]

primeFactors n = factors n primes
    where factors n (p:ps)
              | p * p > n      = [n]
              | n `mod` p == 0 = p : factors (n `div` p) (p:ps)
              | otherwise      = factors n ps

-- Indices start from 0 -> 10001st number is at index 10000.
main = print $ primes !! 10000