Cod sursa(job #942815)
| Utilizator | Data | 23 aprilie 2013 17:26:08 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include<fstream>
using namespace std;
inline int many(int &x){
int ans = 0, t = 5;
while(x >= t){
ans += x / t;
t *= 5;
}
return ans;
}
int main(){
ifstream in("fact.in");
ofstream out("fact.out");
int p;
in >> p;
int left = 1, right = 1e9, mid, ans = -1;
while(left <= right){
mid = left + ((right - left) >> 1);
if(many(mid) < p)
left = mid + 1;
else{
ans = mid;
right = mid - 1;
}
}
if(many(ans) == p)
out << ans;
else
out << -1;
return 0;
}
