Cod sursa(job #2072014)
| Utilizator | Data | 21 noiembrie 2017 12:09:37 | |
|---|---|---|---|
| Problema | GFact | Scor | 20 |
| Compilator | c | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <stdio.h>
#include <stdlib.h>
unsigned long long int check(unsigned long long int x,unsigned long long int p)
{
if(x!=0)
return x/p+check(x/p,p);
return 0;
}
int main()
{
unsigned long long int q,t,r,p;
FILE*fi,*fo;
fi=fopen("gfact.in","r");
fo=fopen("gfact.out","w");
fscanf(fi,"%llu%llu",&q,&t);
r=0;
p=(unsigned long long int)1<<60;
while(p!=0)
{
if(check(r+p,q)<t)
r+=p;
p/=2;
}
fprintf(fo,"%llu",r+1);
fclose(fi);
fclose(fo);
return 0;
}
