using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static int[][] NArr(long n) => Enumerable.Repeat(0, (int)n).Select(_ => NList).ToArray(); public static void Main() { Solve(); } static void Solve() { var c = NList; var (n, d) = (c[0], c[1]); var dic = new Dictionary(); for (var w = 1; w <= n; ++w) for (var z = 1; z <= n; ++z) { var val = w * w - z * z + d; if (val <= 0) break; if (dic.ContainsKey(val)) ++dic[val]; else dic[val] = 1; } var ans = 0L; for (var x = 1; x <= n; ++x) for (var y = x; y <= n; ++y) { var cnt = x == y ? 1L : 2L; var val = x * x + y * y; if (dic.ContainsKey(val)) ans += cnt * dic[val]; } WriteLine(ans); } }