Pagini recente » Cod sursa (job #2331955) | Cod sursa (job #2512887) | Cod sursa (job #2398217) | preONI 2008 - Clasament Runda 3, Clasele 11-12 | Cod sursa (job #1804222)
#include <stdio.h>
#include <stdlib.h>
inline unsigned long long int nrdiv(unsigned long long int n,unsigned long long int k)
{
unsigned long long int s=0;
while(n>0){
s+=n/k;
n=n/k;
}
return s;
}
int main()
{
unsigned long long int z,q,p=1,r=0;
FILE*fi,*fo;
fi=fopen("gfact.in","r");
fo=fopen("gfact.out","w");
fscanf(fi,"%llu%llu",&z,&q);
p=p<<32;
while(p>0)
{
if(nrdiv(p+r,z)<=q)
r+=p;
p/=2;
}
while(nrdiv(r,z)>=q)
r--;
r++;
if(nrdiv(r,z)==q)
fprintf(fo,"%llu",r);
else fprintf(fo,"-1");
fclose(fi);
fclose(fo);
return 0;
}