Cod sursa(job #1990131)
| Utilizator | Data | 10 iunie 2017 16:36:08 | |
|---|---|---|---|
| Problema | Factorial | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
using namespace std;
ifstream fi("fact.in");
ofstream fo("fact.out");
int sol,n;
int numar(int x)
{
int s=0;
for(int p=5;x/p;p*=5) s+=x/p;
return s;
}
int caut_bin(int p,int u,int x)
{
int m;
while(p<u)
{ m=(p+u)/2;
if(numar(m)<x) p=m+1;
if(numar(m)>=x)u=m;
}
m=(p+u)/2;
if(numar(m) < x) m++;
return m;
}
int main()
{
fi>>n;
sol=caut_bin(1,100000000,n);
if(numar(sol) == n ) fo<<sol;
else fo<<"-1";
return 0;
}
