aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--haskell/097-large_non_mersenne_prime.hs19
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