#include using namespace std; #define ALL(x) x.begin(),x.end() #define rep(i,n) for(int i=0;ibool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b calc_devisors(ll a){ vector ret; for(ll i=1; i*i<=a; i++){ if(a%i!=0) continue; ret.push_back(i); ll another = a/i; if(i!=another) ret.push_back(another); } sort(ALL(ret)); return ret; } int main(){ ll n,k; cin>>n>>k; ll ans=0; //(a+c)*(b+d) vector v=calc_devisors(k); for(ll i:v){ if(i*i>k) break; if(k/i > 2*n) continue; //i-1:(a+c)のパターン数 //こいつがn以下の制約に触れるとき(b+d)はa+c以上だから //こいつも制約に触れるからあり得ない ans += (i-1)*min(k/i-1,n*2-k/i+1)*2; cout<