mu chance or much chance ?

日々の戯れ言

Project Euler 28

  • 問題

Problem 28:Number spiral diagonals
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 7 8 9 10
19 6 1 2 11
18 5 4 3 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?

  • 解答例
def spiralDiagonals(num):
    sum = 1
    for i in range(2, num + 1):
        for j in range(0, 4):
            sum += ((2 * i - 1) * (2 * i - 1) - j * (2 * i - 2))
    return sum

num = 501 # 1001 = 2 * num - 1

print(spiralDiagonals(num))