Zachary Stence

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