Problem 9 har jag löst på två sätt, ett kort men ineffektivt och ett lite snabbare men som kräver mer kod.
A Pythagorean triplet is a set of three natural numbers, a < b < c, for which,
a^2 + b^2 = c^2For example, 3^2 + 4^2 = 9 + 16 = 25 = 5^2.
Den enkla lösningen är att generera alla potentiella siffror och kolla ifall de fungerar.
Dock så kan denna kod optimeras väldigt mycket. På min dator gick det 2500 gånger snabbare med en uppgradering. Om man istället för att genera alla kombinationer och sedan kollar ifall de uppfyller kravet att A + B + B == 1000 så kan man endast generera tal så att A + B + C == 1000. Vi vet även att A < C och B < C vilket begränsar ytterligare.