Cod sursa(job #1990138)
| Utilizator | Data | 10 iunie 2017 17:03:33 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <fstream>
using namespace std;
ifstream fi("fact.in");
ofstream fo("fact.out");
long long sol,n;
long long numar(long long x)
{
long long s=0;
for(long long p=5;x/p;p*=5) s+=x/p;
return s;
}
long long caut_bin(long long p,long long u,long long x)
{
long long 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,numar(100000000000),n);
if(numar(sol) == n ) fo<<sol;
else fo<<"-1";
return 0;
}
