#pragma GCC target("avx2") #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #include using namespace std; using ll=long long; using ull=unsigned long long; using pii=pair; using pll=pair; using graph=vector; #define cY cout <<"Yes\n" #define cN cout <<"No\n" #define csp cout <<" " #define out(a) cout <<(a) #define cout(a) cout <<(a) <<"\n" vector div(ll x){ vector r; for(int i=1; i*i<=x; i++){ if(x%i==0)r.push_back(make_pair(i,x/i)); } return r; } int main(){ ll n,k,ans=0;; cin >>n >>k; vector a=div(k); for(auto i:a){ ll A=min({n,i.first-1,max(2*n-i.first+1,0LL)}); ll B=min({n,i.second-1,max(2*n-i.second+1,0LL)}); ans+=2*A*B; } cout(ans); }