Euler's sum of powers conjecture: Difference between revisions

m
Line 1,729:
------------- EULER'S SUM OF POWERS CONJECTURE -----------
 
counterExample :: M.Map Int (Int, Int) -> M.Map Int Int -> Maybe (Int, Int)
(M.Map Int (Int, Int), M.Map Int Int) -> Maybe (Int, Int)
counterExample (sumMap, powerMap) =
find
(\(p, s) -> M.member (p - s) sumMap)
Line 1,752 ⟶ 1,753:
main = do
let xs = [1 .. 249]
(sumMap, powerMap)sumsAndPowers = ((,) . sumMapForRange <*> powerMapForRange) xs
putStrLn $
"Euler's sum of powers conjecture – " <>
maybe
("no counter-example found in the range " <> rangeString xs)
(showExample sumMap powerMapsumsAndPowers xs)
(counterExample sumMap powerMapsumsAndPowers)
 
showExample ::
(M.Map Int (Int, Int) ->, M.Map Int Int) -> [Int] -> (Int, Int) -> String
showExample (sumMap, powerMap) xs (p, s) =
[Int] -> (Int, Int) -> String
showExample sumMap powerMap xs (p, s) =
"a counter-example in range " <> rangeString xs <> ":\n\n" <>
intercalate "^5 + " (show <$> [a, b, c, d]) <>
9,655

edits