16/05/12 19:27:31.92 fkcp4aHY.net
>>495 Squeak/Pharo Smalltalk
| elems sets |
sets := Set new.
elems := (1 to: 16) asArray.
(1 to: elems size - 1) do: [:n |
elems combinations: n atATimeDo: [:comb |
| rest |
rest := elems difference: comb.
((1 to: 3) allSatisfy: [:pow | (comb raisedTo: pow) sum = (rest raisedTo: pow) sum])
ifTrue: [sets add: {comb copy. rest} asSet]
]
].
^sets "=> a Set(a Set(#(2 3 5 8 9 12 14 15) #(1 4 6 7 10 11 13 16))) "