Pagini recente » Cod sursa (job #2566185) | Cod sursa (job #125477) | Cod sursa (job #997728) | Cod sursa (job #2252240) | Cod sursa (job #2067554)
#include <fstream>
using namespace std;
ifstream cin("gfact.in");
ofstream cout("gfact.out");
#define ll long long
ll f(ll x,ll prim)
{
ll sol=0;
while(x)
{
sol+=x/prim;
x/=prim;
}
return sol;
}
struct fint
{
int a,b;
};
fint v[55];
ll a,b,r=0,pas=1LL<<32,y=0,d=2;
ll slove(ll x)
{
for(ll i=1;i<=y;i++)
if(f(x,v[i].a)<v[i].b)
return 0;
return 1;
}
int main()
{
cin>>a>>b;
while(d*d<=a)
{
if(a%d==0)
{
y++;
v[y].a=a;
while(a%d==0)
{
v[y].b++;
a/=d;
}
v[y].b*=b;
}
d++;
}
if(a!=1)
{
y++;
v[y].a=a;
v[y].b=b;
}
while(pas)
{
if(slove(r+pas)==0)
r+=pas;
pas/=2;
}
cout<<r+1;
return 0;
}