Cod sursa(job #1471102)
| Utilizator | Data | 13 august 2015 02:13:43 | |
|---|---|---|---|
| Problema | Factorial | Scor | 55 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <iostream>
#include <fstream>
using namespace std;
int nrz(int x) {
int s = 0;
while (x) {
s += x / 5;
x /= 5;
}
return s;
}
int main(){
ifstream f("fact.in");
ofstream g("fact.out");
int p, lo, hi, mid, t;
f >> p;
lo = 0;
hi = 100000000;
t = -1;
while (hi - lo > 5 && t != p) {
mid = 5*((lo + hi) / 10);
t = nrz(mid);
if (t < p)
lo = mid;
else
hi = mid;
}
if (t == p)
g << hi;
else
g << "-1";
f.close();
g.close();
return 0;
}