#include using namespace std; const long long MOD1 = 1000000007; const long long MOD2 = 998244353; typedef long long ll; //typedef int ll; typedef pair P; const long long INF = 1e9; template void input_arr(vector& A, ll N) { for (ll i = 0; i < N; i++) { cin >> A[i]; } } template void input_arr(vector>& A, ll N) { for (ll i = 0; i < N; i++) { cin >> A[i].first >> A[i].second; } } template void input_arr(vector>& A, ll H, ll W) { for (ll i = 0; i < H; i++) { for (ll j = 0; j < W; j++) { cin >> A[i][j]; } } } vector

prime_factorization(ll N) { vector

A; ll tmp = N; for (ll i = 2; i * i <= N; i++) { if (tmp % i == 0) { A.push_back({ i, 0 }); while (tmp % i == 0) { A.back().second++; tmp /= i; } } } if (tmp != 1) A.push_back({ tmp, 1 }); return A; } int main() { ll N, K, M; cin >> N >> K >> M; vector

Q = prime_factorization(M); vectorA; for (ll i = 0; i < Q.size(); i++) { ll sum = 0, sum2 = 0, sum3 = 0; ll m = Q[i].first; while (N / m != 0) { sum += N / m; sum2 += (N - K) / m; sum3 += K / m; m *= Q[i].first; } A.push_back(sum - sum2 - sum3); } sort(A.begin(), A.end()); cout << A[0] << endl; }