Pagini recente » Cod sursa (job #200599) | Cod sursa (job #1342453) | Cod sursa (job #1001940) | Cod sursa (job #2814664) | Cod sursa (job #221380)
Cod sursa(job #221380)
#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=r%v[i][0];
}
return sum;
}
void write(){
freopen(FOUT,"w",stdout);
int r1,r2;
r1=solve(p);
r2=solve(p+1);
if(r1==r2)
sum=-1;
else
sum=r1;
printf("%d\n",sum);
}
int main(){
read();
write();
}