Pagini recente » Cod sursa (job #767575) | Cod sursa (job #2358876) | Cod sursa (job #1319085) | Cod sursa (job #2344170) | Cod sursa (job #114041)
Cod sursa(job #114041)
#include<stdio.h>
int a[113],b[113],p,m;
void init(int p){
a[0]=5;
b[0]=1;
for(m=1;b[m-1]<=p;m++){
a[m]=a[m-1]*5;
b[m]=a[m-1]+b[m-1];
}
}
int caut(int x){
int p=0,u=m,mm;
while(p<u){
mm=(p+u)>>1;
if(x<=b[mm])
u=mm;
else
p=mm+1;
}
if(b[p]>x)
--p;
return p;
}
int calcul(int p){
int s=0,poz;
while(p){
poz=caut(p);
s+=p/b[poz]*a[poz];
p%=b[poz];
}
return s;
}
int main(){
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int p;
scanf("%d",&p);
if(p==0){
printf("1\n");
fclose(stdin);
fclose(stdout);
return 0;
}
init(p);
/*
for(int i=1;i<=p;++i)
printf("%d,%d,%d",i,a[i],b[i])*/
int x=calcul(p) , y=calcul(p+1);
if(x==y)
printf("-1\n");
else
printf("%d\n",x);
fclose(stdin);
fclose(stdout);
return 0;
}