#!/usr/bin/env python """ Created on 3 Jan 2020 @author: David Doblas Jiménez @email: daviddoji@pm.me Solution for problem 028 of Project Euler https://projecteuler.net/problem=28 """ from utils import timeit @timeit("Problem 028") def compute(): """ 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? """ size = 1001 # Must be odd ans = 1 # Special case for size 1 step = 0 i, current = 1, 1 while step < size - 1: step = i * 2 for _ in range(1, 5): current += step ans += current i += 1 return ans if __name__ == "__main__": print(f"Result for Problem 028: {compute()}")