diff options
| -rw-r--r-- | .gitignore | 3 | ||||
| -rw-r--r-- | 0007/main.hs | 20 |
2 files changed, 23 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c347055 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.hi +*.o +main 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 |
