Pagini recente » Cod sursa (job #2059913) | Cod sursa (job #1006820) | Cod sursa (job #146676) | Cod sursa (job #2044663) | Cod sursa (job #3139918)
#include <fstream>
#include <map>
using namespace std;
ifstream f("zero2.in");
ofstream g("zero2.out");
map<long long, long long> m, m2;
void desc(int b) {
while (b % 2 == 0) {
m[2]++; b /= 2;
}
for(int d = 3; d <= b; d += 2)
while (b % d == 0) {
m[d]++; b /= d;
}
}
int main() {
int n, b;
while(f >> n >> b) {
m.clear();
m2.clear();
desc(b);
for (int i = 2; i <= n; i++) {
int j = i;
for (auto el: m)
while (j % el.first == 0) {
m2[el.first] += n - i + 1;
j /= el.first;
}
}
long long mi = 9223372036854775807;
for (auto el: m)
mi = min(mi, m2[el.first] / el.second);
g << mi << '\n';
}
f.close();
g.close();
return 0;
}