Cod sursa(job #502953)
| Utilizator | Data | 20 noiembrie 2010 22:18:43 | |
|---|---|---|---|
| Problema | Factorial | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <fstream>
#define nmax 1000000000
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int p, answer;
int nr_zero(int x)
{
int s=0;
while(x)
{
s+=x/5;
x/=5;
}
return s;
}
int caut_binar()
{
int left=0; int right=nmax, m;
while(left<right)
{
m=(left+right)/2;
if(nr_zero(m)<p)
left=m+1;
else
right=m;
}
m=(left+right)/2;
if(nr_zero(m)<p)
++m;
return m;
}
int main()
{
f>>p;
answer=caut_binar();
g<<answer;
return 0;
}
