Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Data.Digits (digits, unDigits)
- import Data.Numbers.Primes (isPrime)
- import Math.Pi (machin_pi)
- getPiList = digits 10 . machin_pi
- palindrome x = (x == reverse x)
- checkMail x = (palindrome x) && (isPrime $ unDigits 10 x)
- traverse :: (Integer, [Integer]) -> (Integer, [Integer])
- traverse (i, []) = (i, [])
- traverse (_, x) = if (checkMail sevens)
- then (traverse (unDigits 10 sevens, []))
- else (traverse (0, drop 1 x ))
- where
- sevens = take 7 x
- -- lets assume the solution is within the first 20k digits
- mail :: Integer
- mail = returnMail $ traverse (0, getPiList 20000)
- where
- returnMail (x, _) = x
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement