Cod sursa(job #751673)
Utilizator | Data | 26 mai 2012 16:55:09 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <fstream>
using namespace std;
int n,st,dr,m,P;
int nzero(int n) { //cati de 0 are la final n!
int z = 0;
int P = 5;
while (P<=n) {
z += n/P;
P*=5;
}
return z;
}
int main() {
ifstream f("fact.in");
ofstream g("fact.out");
f>>P;
st = 1;
dr = 5*P;
while (st <= dr) {
m = (st+dr)/2;
if(nzero(m) >= P)
dr = m - 1;
else
st = m + 1;
}
if(nzero(st)==P)g<<st;
else g<<"-1";
return 0;
}