from collections import defaultdict N, K, M = map(int, input().split()) # b >= 2の場合 d = defaultdict(int) for a in range(1, 10 ** 6): tmp = a * (a + K) d[tmp] += 1 for b in range(2, 50): tmp *= a + b * K if tmp > N: break d[tmp] += 1 d = dict(d) twos = 0 for x in d: l, r = 0, 10 ** 9 while r - l > 1: m = (r + l) // 2 if m * (m + K) > x: r = m else: l = m if l * (l + K) == x: d[x] += 1 if x <= N: twos += 1 if M == 1: l, r = 0, 10 ** 9 while r - l > 1: m = (r + l) // 2 if m * (m + K) > N: r = m else: l = m ans = l - twos + 1 else: # すでにdictにないやつは考えなくてよい ans = sum(v == M for v in d.values()) print(ans)