Cod sursa(job #1045990)
| Utilizator | Data | 2 decembrie 2013 15:58:09 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.72 kb |
#include <iostream>
#include <fstream>
using namespace std;
long long p;
int cate(int x)
{
int nr=0;
for(int i=5;i<=x;i=i*5)
nr=nr+x/i;
return nr;
}
int caut(int st,int dr)
{
int mij=(st+dr)/2;
int nr=cate(mij);
if(st==dr)
{
if(nr==p)
return mij;
else
return -1;
}
else
{
if(nr<p)
caut(mij+1,dr);
else
caut(st,mij);
}
}
int main()
{
ifstream f("factorial.in");
ofstream g("factorial.out");
f>>p;
if(p==0)
g<<"1";
else
g<<caut(1,100000000);
f.close();
g.close();
return 0;
}
