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 13It can be verified that the sum of both diagonals is 101.
What is the sum of both diagonals in a 1001 by 1001 spiral formed in the same way?
Observing that the four corners of the spiral can be expressed by:
k2,
k2-k+1,
k2-2k+2,
k2-3k+3,
We get:
def spiralx(n): sum = 0 for k in range(3,n+1,2): sum = sum + (4 * k**2) - 6*k + 6 print sum + 1 >>> spiralx(5) 101 >>> spiralx(3) 25 >>> spiralx(1001) 669171001 |
Tags: diagonals, problem28, project euler, python, spiral