Cod sursa(job #291519)
| Utilizator | Data | 29 martie 2009 22:45:52 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include<stdio.h>
long long fives(long long x){
long long nr = 0,cat=5;
while( cat <= x ){
nr+= x / cat;
cat*=cat;
}
return nr;
}
int main(){
FILE *f=fopen("fatorial.in","r");
FILE *g=fopen("factorial.out","w");
long long k;
fscanf(f,"%lld",&k);
long long st = 1;
long long dr = 1<<10;
long long mj,n;
while(st<=dr){
mj = (st+dr)>>1;
if( fives(mj) >= k ){
dr = mj-1;
n = mj;
}
else st = mj + 1;
}
if( fives(n) == k) fprintf(g,"%lld",n);
else fprintf(g,"-1");
return 0;
}
