using System;
using System.Collections.Generic;
using System.Text;
namespace EulerProject
{
class Solution174
{
private int L(int n, bool show) {
if ((n % 4) != 0 || (n < 8)) return 0;
int nSols = 0;
for (int r = 2; n > r * r; r += 2) {
int a1 = (n + r * r), a = a1 / 2 / r;
if (a * 2 * r != a1) continue;
if (a <= r) continue;
if (show)
Console.WriteLine(a + "^2 - " + (a - r) + "^2 = " + n);
nSols++;
}
return nSols;
}
public Solution174() {
int[] typeCounts=new int[10];
for (int i = 1; i <= 1000000; ++i) {
int iL = L(i, false);
if (iL >= 1 && iL <= 10) typeCounts[iL - 1]++;
}
int sum = 0;
for (int i = 0; i < 10; ++i) {
Console.WriteLine("N(" + (i + 1) + ")=" + typeCounts[i]);
sum += typeCounts[i];
}
Console.WriteLine("Sum = " + sum);
}
}
class Program
{
static void Main(string[] args) {
new Solution174();
Console.Read();
}
}
}