#include #include #include #include #include using namespace std; int main() { long long N, K, M; cin >> N >> K >> M; vector > d; for (long long i = 2; i * i <= N; ++i) { if (N % i == 0) { int cnt = 0; while (N % i == 0) N /= i, ++cnt; d.push_back(make_pair(i, cnt * K)); } } if (N > 1) d.push_back(make_pair(N, K)); function solve = [&](int pos, long long cur) { if (pos == d.size()) return 1LL; long long ans = 0; for (int i = 0; i <= d[pos].second && cur <= M; ++i) { ans += solve(pos + 1, cur); cur *= d[pos].first; } return ans; }; cout << solve(0, 1) << endl; return 0; }