Pagini recente » Cod sursa (job #1853936) | Cod sursa (job #643882) | Cod sursa (job #661240) | Cod sursa (job #2876310) | Cod sursa (job #291859)
Cod sursa(job #291859)
#include <cstdio>
#define FIN "fact.in"
#define FOUT "fact.out"
#define N 35
#define MAX 100000000
int v[N][2], p, sum;
void read()
{
freopen(FIN,"r",stdin);
scanf("%d",&p);
}
int calc()
{
int i = 1, j = 5, k = 1;
while (v[i - 1][0] < MAX)
{
v[i][0] = k;
v[i][1] = j;
++i;
j *= 5;
k = k * 5 + 1;
}
return i - 1;
}
int solve(int p)
{
int r = p, i, sum = 0;
if (p == 0)
return 1;
i = calc();
while (r)
{
while (v[i][0] > r)
--i;
sum += (r / v[i][0]) * v[i][1];
r %= v[i][0];
}
return sum;
}
void write()
{
int r1,r2;
freopen(FOUT,"w",stdout);
r1 = solve(p);
r2 = solve(p + 1);
if(r1 == r2)
sum =- 1;
else
sum = r1;
printf("%d\n", sum);
}
int main()
{
read();
write();
}