, . - - , , .. A ^ 3 + b ^ 3 = c ^ 3 + d ^ 3, a < b a < c < .
, , , .
start - , :
cubes a = [ (a^3+b^3, a, b) | b <- [a+1..] ]
:
allcubes = sort $ concat [ cubes 1, cubes 2, cubes 3, ... ]
, , , concat sort
.
, cubes a ,
:
allcubes = cubes 1 `merge` cubes 2 `merge` cubes 3 `merge` ...
.
merge :
merge [] bs = bs
merge as [] = as
merge as@(a:at) bs@(b:bt)
= case compare a b of
LT -> a : merge at bs
EQ -> a : b : merge at bt
GT -> b : merge as bt
, , .
cubes a cubes (a+1) ,
cubes a = ...an initial part... ++ (...the rest... `merge` cubes (a+1) )
span:
cubes a = first ++ (rest `merge` cubes (a+1))
where
s = (a+1)^3 + (a+2)^3
(first, rest) = span (\(x,_,_) -> x < s) [ (a^3+b^3,a,b) | b <- [a+1..]]
, cubes 1 - a ^ 3 + b ^ 3, a < b .
-, , :
sameSum (x,a,b) (y,c,d) = x == y
rjgroups = groupBy sameSum $ cubes 1
- , > 1:
rjnumbers = filter (\g -> length g > 1) rjgroups
:
ghci> take 10 rjnumbers
[(1729,1,12),(1729,9,10)]
[(4104,2,16),(4104,9,15)]
[(13832,2,24),(13832,18,20)]
[(20683,10,27),(20683,19,24)]
[(32832,4,32),(32832,18,30)]
[(39312,2,34),(39312,15,33)]
[(40033,9,34),(40033,16,33)]
[(46683,3,36),(46683,27,30)]
[(64232,17,39),(64232,26,36)]
[(65728,12,40),(65728,31,33)]