Project Euler Problem 028

Statement

Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows:


21 22 23 24 25
20 07 08 09 10
19 06 01 02 11
18 05 04 03 12
17 16 15 14 13

It can be verified that the sum of the numbers on the diagonals is 101.

What is the sum of the numbers on the diagonals in a 1001 by 1001 spiral formed in the same way?

Solution

The solution is pretty simple if you understand how to build the sequence of the numbers that are in
the diagonal.
First you start with one in the first layer you have to add 2, four times(one for each corner). For the
second layer you have to add 4, for the third layer 6, and so on…
If the spiral has 1001 in a side then it will have 500 layers.

if __name__ == '__main__':
    result = 1
    i = 1
    for x in range(1, 501):
        for y in range(4):
            i += 2 * x
            result += i
    print("The result is:", result)

The Python file is available for download here.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License