Cod sursa(job #3221801)

Utilizator Theo20067Cismaru Theodor-Alexe Theo20067 Data 8 aprilie 2024 09:11:56
Problema Zero 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
using namespace std;
ifstream fin ("zero2.in");
ofstream fout("zero2.out");
long long n,B,minim,d,t=10,nr;
long long power(long long prim)
{
    long long sol=0;
    for(long long j=prim;j<=n;j*=prim)
    {
        long long k=n/j;
        sol+=(k*(k-1))/2*j+(n%j+1)*k;
    }
    return sol;
}
void solve()
{
    fin>>n>>B;
    minim=1e18;
    d=2;
    while(B>1)
    {
        nr=0;
        while(B%d==0)
        {
            B/=d;
            nr++;
        }
        if(nr>0)
           minim=min(minim,power(d)/nr);
        d++;
        if(d*d>B)
            d=B;
    }
    fout<<minim<<"\n";
}
int main()
{
    while(t--)
        solve();
    return 0;
}