Project Euler 9: Special Pythagorean triplet

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^2

For 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.

problem_9

Koden finner ni på github.

Leave a comment