Cod sursa(job #1397635)
| Utilizator | Data | 23 martie 2015 17:24:49 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <fstream>
using namespace std;
int p;
ifstream fin("fact.in");
ofstream fout("fact.out");
int NRZ(int x)
{
int s;
s = 0;
while(x!=0)
{
s += x/5;
x/=5;
}
return s;
}
int main()
{
int i,st,dr,s,m,t;
fin>>p;
t = -1;
st = 1;
dr = 2000000000;
while(st<=dr)
{
m = (st+dr)/2;
s = NRZ(m);
if(s<p) st = m+1;
else if(s>p) dr = m-1;
else
{
t = m;
dr = m-1;
}
}
fout<<t<<"\n";
fout.close();
return 0;
}
