Cod sursa(job #2100227)

Utilizator AndaionicaIonica Anda Maria Andaionica Data 5 ianuarie 2018 13:49:22
Problema Zero 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
using namespace std;
ifstream f("zero2.in");
ofstream g("zero2.out");
int t,n,b,nr,k,d;
long long p,Min;
int main()
{
    t=10;
    while(t){
        f>>n>>b;
        Min=LONG_LONG_MAX;
        for(d=2;d*d<=b;d++)
            if(b%d==0){
                nr=0;
                while(b%d==0){
                    nr++;
                    b/=d;
                }
                k=d;
                p=0;
                while(k<=n){
                    p+=(n/k-1)*(n/k)/2*k+(n%k+1)*(n/k);
                    k*=d;
                }
                Min=min(Min,p/nr);
            }
        if(b!=1){
            k=b;
            p=0;
            while(k<=n){
                p+=(n/k-1)*(n/k)/2*k+(n%k+1)*(n/k);
                k*=b;
            }
            Min=min(Min,p);
        }
        g<<Min<<'\n';
        t--;
    }
    return 0;
}