Pagini recente » Cod sursa (job #1222706) | Cod sursa (job #2934676) | Cod sursa (job #1931182) | Cod sursa (job #2285961) | Cod sursa (job #1500262)
#include <bits/stdc++.h>
using namespace std;
ifstream in("gfact.in");
ofstream out("gfact.out");
int nz(int n,int c)
{
int p=c,sol=0;
while(p<=n)
{
sol+=(n/p);
p*=c;
}
return sol;
}
int bs(int fact, int put)
{
int s=1;
int d=2000000001;
int k,mij;
while(s<=d)
{
mij=(s+d)/2;
k=nz(mij,fact);
if(k>=put)
{
d=mij-1;
}
else
{
s=mij+1;
}
}
mij=(s+d)/2;
k=nz(mij,fact);
if(k<put)
{
mij++;
}
return mij;
}
int main()
{int p,q,i;
in>>p>>q;
int cp=p,d=2,mx=0;
while(cp!=1)
{
int nr=0;
while(cp%d==0)
{
nr++;
cp/=d;
}
mx=max(mx,bs(d,nr+q-1));
d++;
}
out<<mx;
return 0;
}