# [Golang] Number spiral diagonals - Problem 28 - Project Euler

**Problem**: [1]

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?

**Solution**:

669171001

First take a look at the four numbers on the diagonals of N x N square. for example,

3 5 7 9on3 x 3square. The difference is 2 on the numbers. So the difference isn-1onN x Nsquare. We use this observation to calculate all numbers on the diagonals and hence the sum of them.

```
package main
import (
"fmt"
)
func main() {
sum := 1
nextNumberInDiagoal := 1
for j := 2; j < 1001; j += 2 {
for i := 0; i < 4; i++ {
nextNumberInDiagoal += j
sum += nextNumberInDiagoal
//fmt.Println(nextNumberInDiagoal)
}
}
fmt.Println(sum)
}
```

Test on:

References:

[1] | Number spiral diagonals - Problem 28 - Project Euler |

[2] | Two-dimensional slices - Effective Go |