Cod sursa(job #1076090)
| Utilizator | Data | 9 ianuarie 2014 21:33:55 | |
|---|---|---|---|
| Problema | Factorial | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
using namespace std;
ifstream f ("fact.in");
ofstream g("fact.out");
int n,p,i;
int MAX = 100000000;
int zero(int x)
{
int suma = 0;
while (x)
{
suma += x/5;
x /= 5;
}
return suma;
}
int caut_binar(int st, int p, int dr)
{
int m, k = -1;
while (st <= dr)
{
m = (st+dr) / 2;
if (zero(m) == p)
{
k = m;
dr = m - 1;
}
if (zero(m) < p) st = m + 1;
else dr = m - 1;
}
return k;
}
int main ()
{
f >> p;
n = caut_binar(1,p,MAX);
g << n;
f.close();
g.close();
return 0;
}
