Cod sursa(job #1894880)
Utilizator | Data | 27 februarie 2017 17:06:26 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long nrcifr(long n)
{
long long f=0;
for(long long i=5;i<=n;i=i*5)
f=n/i+f;
return f;
}
int cauarebinara0(int k)
{
long long step=2<<27;
long long sol=0;
for(; step>=1; step=step/2)
if(nrcifr(step+sol)<k)
sol=step+sol;
return sol+1;
}
int main()
{
long long n;
in>>n;
long long f=cauarebinara0(n);
if(nrcifr(f)==n)
out<<f;
else
out<<"-1";
}