Pagini recente » Cod sursa (job #989733) | Cod sursa (job #2044318) | Cod sursa (job #704440) | Cod sursa (job #3180140) | Cod sursa (job #397791)
Cod sursa(job #397791)
#include<fstream>
using namespace std;
long long maxim,p,q;
long long putere(int n,int p)
{
long long rez=0;
while (n)
{
rez+=n/p;
n/=p;
}
return rez;
}
void caut(int a,int x)
{
long long i,pas=1<<30;
for (i=0;pas;pas>>=1)
if (putere(i+pas,a)<x) i+=pas;
if (maxim<i+1) maxim=i+1;
}
void gfact()
{
long long p2,i;
for (i=2;i*i<=p;i++)
if (p%i==0)
{
p2=0;
while(p%i==0)
{
p/=i;
p2+=q;
}
caut(i,p2);
}
if(p!=1) caut(p,q);
}
int main()
{
ifstream f("gfact.in");
ofstream o("gfact.out");
f>>p>>q;
if (p==1)
{
o<<"1";
return 0;
}
gfact();
o<<maxim;
return 0;
}