Euler's sum of powers conjecture: Difference between revisions
Content added Content deleted
m (→{{header|Haskell}}: Tidying.) |
m (→{{header|Haskell}}: Tidied.) |
||
Line 1,729: | Line 1,729: | ||
------------- EULER'S SUM OF POWERS CONJECTURE ----------- |
------------- EULER'S SUM OF POWERS CONJECTURE ----------- |
||
counterExample :: |
counterExample :: |
||
(M.Map Int (Int, Int), M.Map Int Int) -> Maybe (Int, Int) |
|||
counterExample sumMap powerMap = |
counterExample (sumMap, powerMap) = |
||
find |
find |
||
(\(p, s) -> M.member (p - s) sumMap) |
(\(p, s) -> M.member (p - s) sumMap) |
||
Line 1,752: | Line 1,753: | ||
main = do |
main = do |
||
let xs = [1 .. 249] |
let xs = [1 .. 249] |
||
sumsAndPowers = ((,) . sumMapForRange <*> powerMapForRange) xs |
|||
putStrLn $ |
putStrLn $ |
||
"Euler's sum of powers conjecture – " <> |
"Euler's sum of powers conjecture – " <> |
||
maybe |
maybe |
||
("no counter-example found in the range " <> rangeString xs) |
("no counter-example found in the range " <> rangeString xs) |
||
(showExample |
(showExample sumsAndPowers xs) |
||
(counterExample |
(counterExample sumsAndPowers) |
||
showExample :: |
showExample :: |
||
M.Map Int (Int, Int) |
(M.Map Int (Int, Int), M.Map Int Int) -> [Int] -> (Int, Int) -> String |
||
⚫ | |||
[Int] -> (Int, Int) -> String |
|||
⚫ | |||
"a counter-example in range " <> rangeString xs <> ":\n\n" <> |
"a counter-example in range " <> rangeString xs <> ":\n\n" <> |
||
intercalate "^5 + " (show <$> [a, b, c, d]) <> |
intercalate "^5 + " (show <$> [a, b, c, d]) <> |