Pagini recente » Cod sursa (job #1533662) | Cod sursa (job #2070365) | Cod sursa (job #2327473) | Cod sursa (job #211144) | Cod sursa (job #59501)
Cod sursa(job #59501)
#include<stdio.h>
int main()
{
long long unsigned i,m,p,q,a,sol,j,nr,r,k=2,x,max=0;
FILE*f=fopen("gfact.in","r");
FILE*g=fopen("gfact.out","w");
fscanf(f,"%llu %llu",&p,&q);
while(p!=1)
{
r=0;
while(p%k==0) {r++; p/=k;}
if(r!=0)
{
r*=q;
i=k; j=r*k*2;
while(i<=j)
{
m=(i+j)/2;
nr=0;
x=k;
while(m/x!=0) {nr+=m/x; x*=k;}
if (nr==r)
{
while(m%k!=0) m--;
if (max<m) max=m;
break;}
else if (nr>r) j=m-k;
else i=m+k;
} }
k++;
}
fprintf(g,"%llu",max);
fclose(f);
fclose(g);
return 0;}