codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
module Main where import Data.List isCurious :: Integer -> Bool isCurious n = n == (mod (n * n) p) where powersOfTen = map (\x -> 10^x) [1..] p = head $ dropWhile (< n) powersOfTen curiousUpToNDigits :: Integer -> [Integer] curiousUpToNDigits n | n == 1 = [1,5,6] | n > 1 = let l = (curiousUpToNDigits (n-1)) in nub $ filter isCurious [x*(10^(n-1)) + y | x <- [0..9], y <- l] | otherwise = [] sumOfCurious :: Integer -> Integer sumOfCurious n = sum $ curiousUpToNDigits n main :: IO () main = do let sum = sumOfCurious 20 print "The sum is:" print sum
Private
[
?
]
Run code
Submit