Pagini recente » Cod sursa (job #817100) | Istoria paginii runda/dedicatie_speciala2 | Cod sursa (job #2741532) | Cod sursa (job #3264913) | Cod sursa (job #1608850)
#include <fstream>
using namespace std;
ifstream fin("gfact.in");
ofstream fout("gfact.out");
long long p,q;
long long div1(long long n,long long d)
{
long long r=0;
while (n>=d)
{
r+=n/d;
n/=d;
}
return r;
}
long long caut_bin(long long d,long long putere)
{
long long i=0,pas=1<<30;
pas*=pas;
while (pas!=0)
{
if (div1(i+pas,d)<putere && i+pas<=d*putere) i+=pas; // !!!
pas/=2;
}
return i+1;
}
int main()
{
long long d=2,pow=0,max=0,r;
fin>>p>>q;
while (p>1)
{
r=0;
pow=0;
if (d*d>p) d=p;
while (p%d==0) {pow++;p/=d;}
if (pow!=0) r=caut_bin(d,pow*q);
if (r>max) max=r;
d++;
}
fout<<max;
return 0;
}