Cod sursa(job #1327591)
| Utilizator | Data | 26 ianuarie 2015 21:22:19 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.7 kb |
#include <fstream>
using namespace std;
int main()
{
int n, c;
long long st, dr, m, x;
st = 1; dr = 1000000000;
ifstream fin("fact.in");
fin >> n;
fin.close();
ofstream fout("fact.out");
while(st <= dr)
{
m = (st + dr) / 2;
x = m;
c = 0;
while(m)
{
c += m / 5;
m /= 5;
}
if(c == n)
{
if(x - x % 5 == 0) fout << "1";
else fout << x - x % 5;
dr = -1;
}
else if(c > n) dr = (st + dr) / 2 - 1;
else st = (st + dr) / 2 + 1;
}
if(dr != -1) fout << "-1";
fout.close();
return 0;
}
