aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-102/ulrich-rieke/haskell/ch-1.hs16
1 files changed, 16 insertions, 0 deletions
diff --git a/challenge-102/ulrich-rieke/haskell/ch-1.hs b/challenge-102/ulrich-rieke/haskell/ch-1.hs
new file mode 100644
index 0000000000..00f7dea9f9
--- /dev/null
+++ b/challenge-102/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,16 @@
+module Challenge102
+ where
+
+isPerfectSquare :: Int -> Bool
+isPerfectSquare n = root == ( fromIntegral $ floor root )
+ where
+ root = sqrt $ fromIntegral n
+
+isRare :: Int -> Bool
+isRare n = isPerfectSquare ( n + reversed ) && isPerfectSquare (n - reversed )
+where
+ reversed :: Int
+ reversed = read $ reverse $ show n
+
+solution :: Int -> [Int]
+solution size = filter isRare [ 10 ^ ( size - 1 ) .. (10 ^ size) - 1]