Cod sursa(job #2491787)
Utilizator | Data | 13 noiembrie 2019 09:44:27 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <fstream>
using namespace std;
ifstream in ("fact.in");
ofstream out ("fact.out");
int nr0(long long a)
{
long long powe=5,cnt=0;
while (powe<=a)
{
cnt=cnt+a/powe;
powe=powe*5;
}
return cnt;
}
long long ctbin (long long val)
{
long long pos=0;
for (long long msk=1<<30;msk>0;msk/=2)
{
if (nr0(pos+msk)<=val)
pos=pos+msk;
}
if (nr0(pos)!=val)
return -1;
else
{
while (nr0(pos)==val)
pos--;
return pos+1;
}
}
int main()
{
long long n;
in>>n;
if (n==0)
out<<1;
else
out<<ctbin(n);
return 0;
}