Cod sursa(job #3360083)

Utilizator theodix_1Tiroiu Theodor Alexandru theodix_1 Data 8 iulie 2026 17:17:10
Problema Zero 2 Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.3 kb
#include <fstream>
using namespace std;
ifstream f("zero2.in");
ofstream g("zero2.out");

int legendre(int n, int p)
{
    int e = 0;
    while(n)
    {
        n /= p;
        e += n;
    }
    return e;
}

int main()
{
    int N, B;
    for(int j = 1; j <= 10; j++)
    {
        f >> N >> B;
        long long mini = 0;
        int ok = 0;
        for(int i = 2; i * i <= B; i++)
        {
            if(B % i == 0)
            {
                int putere = 0;
                while(B % i == 0)
                {
                    putere++;
                    B /= i;
                }
                long long v = 0;
                for(int k = 1; k <= N; k++)
                    v += legendre(k, i);
                long long nr = v / putere;
                if(ok == 0)
                {
                    ok = 1;
                    mini = nr;
                }
                mini = min(mini, nr);
            }
        }
        if(B > 1)
        {
            long long v = 0;
            for(int k = 1; k <= N; k++)
                v += legendre(k, B);
            if(ok == 0)
            {
                ok = 1;
                mini = v;
            }
            mini = min(mini, v);
        }
        g << mini << '\n';
    }
    return 0;
}