Cod sursa(job #1119080)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 24 februarie 2014 15:04:59
Problema Zero 2 Scor 43
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>

using namespace std;

ifstream fin ("zero2.in");
ofstream fout ("zero2.out");

int d[100010],p[100010],pc[100010],v[100010],m,x,Div,i,j,n,b,nc,y;
long long minim, sol;


int main () {

    x=10;
    while (x--) {
        fin>>n>>b;
        for (i=1;i<=Div;i++)
            d[i]=p[i]=pc[i]=v[i]=0;
        Div=0;
        for (i=2;i*i<=b;i++) {
            if (b%i==0) {
                d[++Div]=i;
                while (b%i==0){
                    p[Div]++;
                    b/=i;
                }
            }
        }
        if (b!=1){
            d[++Div]=b;
            p[Div]=1;
        }
        for (i=2;i<=n;i++) {
            for (j=1;j<=Div && d[j]<=i;j++) {
                m=0;
                y=i;
                while (y%d[j]==0) {
                    y/=d[j];
                    m++;
                }

                pc[j]+=v[j]+m;
                v[j]+=m;
            }
        }

        minim=(1LL<<62);
        for (i=1;i<=Div;i++) {
            sol=pc[i]/p[i];

            if (sol<minim)
                minim=sol;
        }

        fout<<minim<<"\n";
    }


    return 0;

}