def factorize(n): factors = [] if n == 1: return factors i = 2 while i * i <= n: if n % i == 0: cnt = 0 while n % i == 0: cnt += 1 n = n // i factors.append((i, cnt)) i += 1 if n > 1: factors.append((n, 1)) return factors def count_divisors(primes, M, index, current_prod): if current_prod > M: return 0 if index == len(primes): return 1 total = 0 p, e_max = primes[index] quotient = M // current_prod if quotient == 0: return 0 # Compute maximum exponent a such that p^a <= quotient max_power = 0 current_p = 1 while True: if current_p > quotient: break max_power += 1 current_p *= p max_power -= 1 max_a = min(max_power, e_max) # Now iterate through possible exponents current_p = 1 for a in range(0, max_a + 1): new_prod = current_prod * current_p if new_prod > M: break total += count_divisors(primes, M, index + 1, new_prod) current_p *= p return total def main(): import sys input_line = sys.stdin.readline() N, K, M = map(int, input_line.strip().split()) if N == 1: print(1 if M >= 1 else 0) return factors = factorize(N) primes_K = [(p, e * K) for (p, e) in factors] primes_K.sort() result = count_divisors(primes_K, M, 0, 1) print(result) if __name__ == "__main__": main()