Terug naar Project Euler

Project Euler

Project Euler probleem 173

Bekijk het originele probleem op Project Euler

In dit probleem ga je bepalen hoeveel verschillende vierkante laminae (vierkante randen met een vierkant gat) je kunt vormen met maximaal 1.000.000 tegels.

Wat je allereerst kan afleiden uit de screenshot is dat het aantal tegels er in totaal zijn.

En dat is gelijk aan a * a - b * b waar dat a gelijk is aan de buitenkant en b gelijk aan de binnenkant.

Dus je kan deze probleem bruteforcen je moet itereren tussen elke mogelijke antwoord.

Het volgende dat je moet weten is tussen welke waarden ga je moeten itereren.

Voor de buitenste kant is dat vanaf 3 tot dat 4 * a - 4 kleiner is dan een miljoen.

4 * a - 4 komt van het feit dat je Maar 1 buitenste kant hebt en dat indien het over een miljoen gaat het geen nut meer heeft om er randen aan toe te voegen.

(4 * a - 4 komt van a * a - (a - 2) * (a - 2))

En voor de binnenste kant moet je itereren van a - 2 tot en met 1.

Je moet ook opletten dat de buitenste en de binnenste kant dezelfde pariteit hebben (dus ze zijn beiden even of beiden oneven)

Het code ziet er als volgt uit:

Antwoord: 1572729
Uitvoeringstijd: 0.004201 seconden