diff options
Diffstat (limited to '0007')
| -rw-r--r-- | 0007/main.hs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/0007/main.hs b/0007/main.hs new file mode 100644 index 0000000..87486bd --- /dev/null +++ b/0007/main.hs @@ -0,0 +1,20 @@ +nthPrime :: Integer -> Integer +nthPrime targetCount = nextPrimeImpl 2 1 [] + where + nextPrimeImpl i primeCount primeList = + if isPrime then + if primeCount == targetCount then + i + else + nextPrimeImpl (i + 1) (primeCount + 1) (primeList ++ [i]) + else + nextPrimeImpl (i+1) primeCount primeList + where + isPrime = + isPrimeImpl primeList + where + isPrimeImpl [] = True + isPrimeImpl (x:xs) = i `mod` x /= 0 && isPrimeImpl xs + +main = do + putStrLn $ show $ nthPrime 10001 |
