Cod sursa(job #3139916)

Utilizator alex210046Bratu Alexandru alex210046 Data 2 iulie 2023 15:20:26
Problema Zero 2 Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#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) {
    for(int d = 2; d <= b; d++)
        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;
}