Advertisement
Guest User

Scoopmail

a guest
Apr 13th, 2012
2,502
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import Data.Digits (digits, unDigits)
  2. import Data.Numbers.Primes (isPrime)
  3. import Math.Pi (machin_pi)
  4.  
  5. getPiList = digits 10 . machin_pi
  6. palindrome x = (x == reverse x)
  7. checkMail x = (palindrome x) && (isPrime $ unDigits 10 x)
  8.  
  9. traverse :: (Integer, [Integer]) -> (Integer, [Integer])
  10. traverse (i, []) = (i, [])
  11. traverse (_, x) = if (checkMail sevens)
  12.                     then (traverse (unDigits 10 sevens, []))
  13.                     else (traverse (0, drop 1 x ))
  14.     where
  15.         sevens = take 7 x
  16.  
  17. -- lets assume the solution is within the first 20k digits
  18. mail :: Integer
  19. mail = returnMail $ traverse (0, getPiList 20000)
  20.     where
  21.         returnMail (x, _) = x
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement