#include #include #include #include #include #include #include #include #include #include using namespace std; map prime; void prime_factor(long long n){ long long m = n; if (n % 2 == 0){ while(n % 2 == 0){ prime[2]++; n /= 2; } } for (long long i = 3; i*i <= m; i+=2){ if (n % i == 0){ while(n % i == 0){ prime[i]++; n /= i; } } } if (n != 1){ prime[n]++; } } using ll = long long; //X!がpで何回割り切れるか? ll count(ll X, ll p){ ll cnt=0, q=p; while(X/q > 0){ cnt += X/q; if (q <= X/p) q *= p; else break; } return cnt; } int main(){ long long N, K, M, cnt, ans=1e18; cin >> N >> K >> M; prime_factor(M); for (auto [x, y] : prime){ cnt = count(N, x) - count(K, x) - count(N-K, x); ans = min(ans, cnt/y); } cout << ans << endl; return 0; }