def divisors(n): ret = [] d = 2 while d * d <= n: if n % d == 0: ret.append(int(d)) if d * d != n: ret.append(int(n / d)) d += 1 ret.append(n) ret.sort() return ret N, X = map(int, input().split()) D = divisors(X + 1) def dec(n, m, k): # print(n, m, k) if m >= len(D): return 0 if k == 0: if n == 1: return 1 else: return 0 if k == 1: if n >= D[m]: return 1 else: return 0 if pow(n, 1.0 / k) + 0.00000001 < D[m]: return 0 ret = 0 d = int(m) while D[d] * D[d] <= n and d < len(D): if n % D[d] == 0 : nn = n cnt = 1 while nn % D[d] == 0 and k >= cnt: nn /= D[d] ret += dec(nn, d + 1, k - cnt) cnt += 1 d += 1 return ret print(dec(X + 1, 0, N))