from collections import defaultdict,deque import sys,heapq,bisect,math,itertools,string,queue,copy,time sys.setrecursionlimit(10**8) INF = float('inf') mod = 10**9+7 eps = 10**-7 def inp(): return int(input()) def inpl(): return list(map(int, input().split())) def inpl_str(): return list(input().split()) def facdiv(n): factor = defaultdict(int) ed = set() tmp = int(math.sqrt(n)) + 1 for num in range(2,tmp): while n % num == 0: n //= num ed.add(num) factor[num] += 1 ed.add(n) factor[n] += 1 return factor,ed N,K,M = inpl() fac,ed = facdiv(N) ans = set([1]) for e in ed: newans = set() for k in range(K*fac[e]+1): p = pow(e,k) if p > M: break for a in ans: if a*p > M: break newans.add(a*p) ans = list(newans) ans.sort() print(len(ans))