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?
In [33]:
//let limit = 1001 * 1001
let limit = 6 * 6
let rec spiralNumbersTo1001 skip index n =
if index >= limit then [index]
else
if n <= 1 then [index] @ (spiralNumbersTo1001 (2+skip) (2+skip+index) 4)
else [index] @ (spiralNumbersTo1001 skip (skip+index) (n-1))
let plus1 n = n + 1
spiralNumbersTo1001 2 3 4
//|> List.sum
//|> plus1
Out[33]:
In [ ]: