Cod sursa(job #876167)
Utilizator | Podaru Mihai XeBlue | Data | 11 februarie 2013 14:37:46 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include<fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long cinci(long long nr)
{
long long w=0;
for(long long k=5;k<=nr;k*=5)
w+=nr/k;
return w;
}
int main()
{
long long n, i=1, k, inf=20000000000;
in >> n;
if(n==0)
{
out << 1;
return 0;
}
while(i<inf)
{
long long m=(i+inf)/2;
long long g=cinci(m);
if(n<=g)
inf=m;
else
i=m+1;
}
if(cinci(i)==n)
out << i;
else
out << "-1";
in.close();
out.close();
return 0;
}