Pagini recente » Cod sursa (job #1503687) | Cod sursa (job #1840593) | Cod sursa (job #1054006) | Cod sursa (job #3188618) | Cod sursa (job #1593203)
#include <fstream>
using namespace std;
ifstream cin("gfact.in");
ofstream cout("gfact.out");
int n, put;
long long caut_bin(int x, int px)
{
long long st=1, dr=1ll*n*put, mj;
while(st<=dr)
{
mj=(st+dr)/2;
int cur=0;
long long cop=x;
while(cop<=mj)
{
cur+=mj/cop;
cop*=x;
}
if(cur<px)
st=mj+1;
else
dr=mj-1;
}
return st;
}
int main()
{
cin>>n>>put;
long long ans=0;
int f=2;
while(n>1)
{
if(f*f>n) f=n;
int cur=0;
while(n%f==0)
{
cur++;
n/=f;
}
long long val=caut_bin(f, cur*put);
if(ans<val) ans=val;
f++;
}
cout<<ans;
return 0;
}