Pagini recente » Cod sursa (job #41089) | Cod sursa (job #2782391) | Cod sursa (job #3251345) | Cod sursa (job #844748) | Cod sursa (job #332840)
Cod sursa(job #332840)
#include<cstdio>
using namespace std;
long long i, pow5_p[14], pow5[14], p, sol = 1, p1, s;
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld", &p);
if(p == 0)
{
printf("1\n");
return 0;
}
pow5[0] = 1;
for(i = 1; i <= 13; ++i)
{
pow5_p[i] = pow5_p[i - 1] + sol;
sol *= 5;
pow5[i] = sol;
}
sol = 0;
p1 = p;
for(i = 13; i >= 1; --i)
{
sol += (p1 / pow5_p[i]) * pow5[i];
p1 %= pow5_p[i];
}
p1 = sol;
s = 0;
while(p1)
{
s += (p1 / 5);
p1 /= 5;
}
if(s == p)
printf("%lld\n", sol);
else
printf("-1\n");
return 0;
}