Pagini recente » Cod sursa (job #1884502) | Cod sursa (job #1533289) | Cod sursa (job #735528) | Cod sursa (job #1634595) | Cod sursa (job #1806188)
#include<stdio.h>
FILE *fin, *fout;
#define max(a, b)(a > b ? a : b)
int p,q,i,e;
long long putere(long long n,int p) {
long long rez=0;
while(n)
{
n/=p;
rez+=n;
}
return rez;
}
long long sol;
void caut(int a,int x) {
long long i,pas=1LL<<60;
for(i=0;pas;pas>>=1)
if (putere(i+pas,a)<x) i+=pas;
sol=max(sol,i+1);
}
int main() {
fin = fopen("gfact.in", "r");
fout = fopen("gfact.out", "w");
fscanf(fin, "%d%d", &p, &q);
for(i=2;i*i<=p;++i)
if(p%i==0)
{
e=0;
while(p%i==0)
{
p/=i;
e+=q;
}
caut(i,e);
}
if(p>1) caut(p,q);
fprintf(fout, "%lld", sol);
fclose(fin);
fclose(fout);
return 0;
}