diff options
| -rw-r--r-- | haskell/097-large_non_mersenne_prime.hs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/haskell/097-large_non_mersenne_prime.hs b/haskell/097-large_non_mersenne_prime.hs new file mode 100644 index 0000000..a2f3f91 --- /dev/null +++ b/haskell/097-large_non_mersenne_prime.hs @@ -0,0 +1,19 @@ +-- Large non-Mersenne prime +-- +-- Problem 97 +-- The first known prime found to exceed one million digits was discovered in 1999, +-- and is a Mersenne prime of the form 2^6972593 − 1; it contains exactly 2,098,960 digits. +-- Subsequently other Mersenne primes, of the form 2^p − 1, +-- have been found which contain more digits. +-- +-- However, in 2004 there was found a massive non-Mersenne prime which contains +-- 2,357,207 digits: 28433 × 2^7830457 + 1. +-- +-- Find the last ten digits of this prime number. + + +-- this must be a nightmare in C +main = putStrLn $ lastN 10 (show (28433 * 2 ^ 7830457 + 1)) + +lastN :: Int -> [a] -> [a] +lastN n xs = drop (length xs - n) xs |
