Cod sursa(job #1225350)
| Utilizator | Data | 2 septembrie 2014 14:11:40 | |
|---|---|---|---|
| Problema | Factorial | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long p;
int nrzero(long x)
{
long nr5=5,nr=0;
while(nr5<=x)
{
nr+=x/nr5;
nr5*=5;
}
return nr;
}
int cautbin(long st,long dr)
{long x;
if(st==dr)
{if(nrzero(st)==p) {return st;}}
else{
int m=(st+dr)>>1;
if(nrzero(m)>=p)
{x=cautbin(st,m);}
else
{x=cautbin(m+1,dr);}
return x;}
}
int main()
{
f>>p;f.close();
long nr=cautbin(p,5*p);
if(!nr) g<<-1;
else g<<nr;
g.close();
return 0;
}
