Cod sursa(job #1308519)
| Utilizator | Data | 4 ianuarie 2015 12:22:00 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int f(int a)
{
int s = 0, x = 5;
while(x <= a) {
s += a / x;
x *= 5;
}
return s;
}
int main()
{
int st=0, x, mij, dr = 1000000000, p, n = -1;
in >> p;
if(p==0) {
out << 1;
return 0;
}
while(st <= dr) {
mij=(st+dr)/2;
if(f(mij) > p)
dr = mij - 1;
if(f(mij)<p)
st = mij + 1;
if(f(mij) == p) {
n = mij;
dr = mij - 1;
}
}
out << n;
return 0;
}