#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define int long long typedef vector VI; #define REP(i,n) for(int i=0;i > dp; //vector > > vvvi; //dp=vector >(N, vector(M,0)); //vector > v; //v.push_back(make_pair(x,y)); signed main() { cin.tie(0); ios::sync_with_stdio(false); int N, D; cin >> N >> D; unordered_mapA, B; int ans = 0; eFOR(i, 1, N) { eFOR(j, i, N) { B[i*i + j * j] += 2; if (i == j) B[i*i + j * j]--; } } eFOR(i, 1, N) { eFOR(j, i, N) { ans += B[D + i * i - j * j]; ans += B[D - i * i + j * j]; if (i == j) ans -= B[D + i * i - j * j]; } } cout << ans << endl; return 0; }