// instead of computing the spiral and summing the diagonals, only get corners fn main() { let dimension = 1001; let mut sum = 0; let squares = (dimension / 2) + 1; let mut last_square_end = 0; for square in 0..squares { if square == 0 { sum = 1; last_square_end = 1; continue; } for corner in 0..4 { sum += last_square_end + (square * 2) * (corner + 1); } last_square_end = last_square_end + (square * 2) * 4; } println!("{sum}"); }