# x,yでループを回してx,yに対するzが存在するか判定 # x,yのループ上限はx**6 >Nとx**6+y**4>Nで切る # zの判定はisqrt使用 # x,y,zの組み合わせ数ではなくnの個数なのでnをsetで管理 from math import isqrt K, N = map(int, input().split()) ans = 0 g = set() for x in range(1,N+1): if x ** 6 > N: break for y in range(1,N+1): n = x ** 6 + y ** 4 if n > N: break if n % K == 0: z2 = n // K z = isqrt(z2) if z * z == z2: g.add(n) print(len(g))