Cod sursa(job #1750904)
| Utilizator | Data | 31 august 2016 14:06:26 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <cstdio>
using namespace std;
int n;
int legen(int x){
int sol=0;
while(x){sol+=x;x=x/5;}
return sol;
}
int main()
{
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
scanf("%d", &n);
if(n==0) {printf("1");return 0;}
int st=4*n/5,dr=n+1;
while(st+1<dr){
int mij=(st+dr)/2;
if(legen(mij)>=n)dr=mij;
else st=mij;
}
if(legen(st)==n){printf("%d", st*5);return 0;}
if(legen(dr)==n) {printf("%d", dr*5);return 0;}
printf("-1");
return 0;
}
