Cod sursa(job #335372)

Utilizator freak93Adrian Budau freak93 Data 29 iulie 2009 19:29:42
Problema Zero 2 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>

using namespace std;

ifstream f("zero2.in");
ofstream g("zero2.out");

int n,b,i,j,k,pr[100],e[100],t,p,r,maxt;

int S(int n,int p)
{
    int k=n/p;
    --k;
    return k*(k+1)/2*p+(k+1)*(n-(k+1)*p+1);
}

int main()
{
    t=10;
    for(p=1;p<=t;++p)
    {
        f>>n>>b;
        k=0;
        for(i=2;i*i<=b;++i)
            if(b%i==0)
            {
                pr[++k]=i;
                e[k]=0;
                while(b%i==0)
                    b/=i,++e[k];
            }
        if(b>1)
            pr[++k]=b,e[k]=1;
        maxt=0x3f3f3f3f;
        for(i=1;i<=k;++i)
        {
            r=0;
            j=pr[i];
            while(j<=n)
                r+=S(n,j),j*=pr[i];
            r/=e[i];
            if(r<maxt)
                maxt=r;
        }

        g<<maxt<<"\n";
    }

    f.close();
    g.close();

    return 0;
}