Pagini recente » Cod sursa (job #2772215) | Cod sursa (job #1562329) | Cod sursa (job #2465412) | minune11 | Cod sursa (job #2528673)
#include <fstream>
using namespace std;
ifstream fin("gfact.in");
ofstream fout("gfact.out");
int a,d,p,n,f[50],c[50],k,q;
long long putere(long long n,int f)
{
long long sum=0;
while(n>=f)
{
sum += n/f;
n/=f;
}
return sum;
}
bool ok(long long n)
{
for( int i=1; i<=k; i++)
{
if (putere(n,f[i]) < (long long)c[i]*q)
{
return false;
}
}
return true;
}
int main()
{
k=0;
fin>>n>>q;
int d = 2,p;
while(d * d <= n)
{
p = 0;
while(n % d == 0)
{
++p;
n /= d;
}
if(p)
{
k++;
f[k]=d;
c[k]=p;
}
++ d;
}
if (n > 1)
{
f[++k] = n;
c[k] = 1;
}
long long st,dr,m;
st=1;
dr = 6e13;
while(st<dr)
{
m=(st+dr)/2;
if(ok(m))
dr=m;
else
st=m+1;
}
fout<<st;
return 0;
}