// using chatgpt only translate /* K,N = map(int, input().split()) s = set([]) for i in range(1,10**8): if K * i * i <= 10**15: s.add(K*i*i) else: break ans = 0 t = set([]) for x in range(1,1001): for y in range(1,10**4): if x**6 + y**4 > N: break if x**6 + y**4 in s: t.add(x**6+y**4) print(len(t)) */ #include using namespace std; using int64 = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int64 K, N; cin >> K >> N; unordered_set s; s.reserve(1000000); for (int64 i = 1; ; ++i) { __int128 v = (__int128)K * i * i; if (v <= (__int128)1'000'000'000'000'000LL) { s.insert((int64)v); } else { break; } } unordered_set t; t.reserve(100000); for (int x = 1; x <= 1000; ++x) { // compute x^6 int64 x6 = 1; for (int i = 0; i < 6; ++i) { x6 *= x; } for (int y = 1; y <= 10000; ++y) { // compute y^4 int64 y4 = 1; for (int i = 0; i < 4; ++i) { y4 *= y; } int64 sum = x6 + y4; if (sum > N) break; if (s.count(sum)) { t.insert(sum); } } } cout << t.size() << "\n"; return 0; }