#include #define rep(i,a,b) for(int i=int(a);i> N >> D; unordered_map mp; rep(i,1,N+1)rep(j,1,N+1){ if(i * i - j * j + D < 1)continue; mp[i * i - j * j + D]++; } ll ans = 0; rep(i,1,N+1)rep(j,1,N+1){ ans += mp[i * i + j * j]; } cout << ans << endl; }