use crate::Solution;
use pmath::sequences::{OddNaturalNumbersSeq, OddNaturalNumbersSquaredSeq, Sequence};
problem!(Problem0028, 28, "Number Spiral Diagonals");
impl Solution for Problem0028 {
fn solve(&self) -> String {
const SPIRAL_SIZE: u64 = 1001;
let result = 1 + 4
* (OddNaturalNumbersSquaredSeq::<u64>::new()
.sum_next_n((SPIRAL_SIZE / 2 + 1) as usize)
- 1)
- 6 * (OddNaturalNumbersSeq::<u64>::new().sum_next_n((SPIRAL_SIZE / 2 + 1) as usize)
- 1)
+ 6 * (SPIRAL_SIZE / 2);
result.to_string()
}
}