#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; int main() { cin.tie(nullptr)->sync_with_stdio(false); ll n, k, m; cin >> n >> k >> m; vector> pf; for (int i = 2; i * i <= n; ++i) { if (n % i != 0) continue; int cnt = 0; while (n % i == 0) ++cnt, n /= i; pf.push_back({ i, cnt * k }); } if (n > 1) pf.push_back({ n, k }); vector ans; function dfs = [&](int idx, ll cur) { if (idx >= pf.size()) { assert(cur <= m); ans.push_back(cur); return; } int cnt = 0; do { dfs(idx + 1, cur); cur *= pf[idx].first; cnt++; } while (cur <= m && cnt <= pf[idx].second); }; dfs(0, 1); sort(ans.begin(), ans.end()); ans.erase(unique(ans.begin(), ans.end()), ans.end()); // cerr << format("{}\n", ans); cout << ans.size() << '\n'; return 0; }