Cod sursa(job #1181312)
| Utilizator | Data | 2 mai 2014 14:37:17 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int p, st, dr, mid;
int zero(int n) {
int p = 5, s = 0;
while (p<=n) {
s += n/p;
p*=5;
}
return s;
}
int main(){
fin>>p;
st = 1;
dr = 5*p;
while (st <= dr) {
mid = (st+dr)/2;
if (zero(mid) >= p)
dr = mid-1;
else
st = mid+1;
}
if (zero(st) == p)
fout<<st;
else
fout<<-1;
return 0;
}
