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?
#include<iostream>
#include<math.h>
using namespace std;
int diags(int start, int dim) {
int n = start, sum = start, l = 1, end = pow(dim, 2);
while (n != end) {
sum += 4*n + 20*l;
n += 8*l;
l++;
}
return sum;
}
int main() {
int start = 1;
int dim = 1001;
cout << diags(start, dim) << endl;
}
Answer: 669171001