#include #include using namespace std; int main(int argc, char* argv[]) { int N,D; cin>>N>>D; map xyMap; map wzMap; map::iterator mit; for (int x=1;x<=N;x++){ for (int y=1;y<=N;y++){ int xy=x*x+y*y; mit=xyMap.find(xy); if (mit==xyMap.end()){ xyMap[xy]=1; }else{ (*mit).second++; } int wz=x*x-y*y+D; if (wz<2){ continue; } mit=wzMap.find(wz); if (mit==wzMap.end()){ wzMap[wz]=1; }else{ (*mit).second++; } } } int ans=0; map::iterator mit1; for (mit=xyMap.begin();mit!=xyMap.end();mit++){ mit1=wzMap.find((*mit).first); if (mit1!=wzMap.end()){ ans+=(*mit).second * (*mit1).second; } } xyMap.clear(); wzMap.clear(); cout<