#include using namespace std; #define rep(i,n) for(int i = 0; i < (n);i++) #define sz(x) int(x.size()) typedef long long ll; typedef pair P; int main(){ int n, d; cin >> n >> d; vector wdz, xy; for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { wdz.push_back({i*i + d - j*j}); xy.push_back({i*i + j*j}); } } sort(wdz.begin(), wdz.end()); int m = sz(xy); int res = 0; for (int i = 0; i < m; i++) { auto r = upper_bound(wdz.begin(), wdz.end(), xy[i]) - wdz.begin(); auto l = lower_bound(wdz.begin(), wdz.end(), xy[i]) - wdz.begin(); res += r - l; } cout << res << endl; return 0; }