//#define _GLIBCXX_DEBUG #include using namespace std; #define rep(i, n) for (ll i = 0; i < (ll)(n); i++) #define all(a) (a).begin(), (a).end() using ll = long long; const ll INF32 = 2e9; const ll INF64 = 4e18; void printYN(bool ok){ if(ok)cout << "Yes" << endl; else cout << "No" << endl; return; } int main() { ll K, N; cin >> K >> N; set use; ll cnt = 0; for(ll i = 1; i < 1000; i++){ for(ll j = 1; j < 10000; j++){ if(i*i*i*i*i*i + j*j*j*j > N)continue; ll cand = i*i*i*i*i*i + j*j*j*j; if(cand%K!=0)continue; cand /= K; if(floor(sqrt((long double)cand))*floor(sqrt((long double)cand)) == cand || (floor(sqrt((long double)cand))+1)*(floor(sqrt((long double)cand))+1) == cand){ if(!use.count(cand)){ use.insert(cand); cnt++; } } } } cout << cnt << endl; return 0; }