Pagini recente » Cod sursa (job #178149) | Cod sursa (job #3038285) | Cod sursa (job #1372763) | Cod sursa (job #1403435) | Cod sursa (job #700827)
Cod sursa(job #700827)
#include <cstdio>
int p5[50],a[50],dim;
int main () {
int n,i,c=0,vc,uv,j;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&n);
if(n==0){
printf("1");
return 0;
}
for(i=1;i<=14;++i){
if(dim==0)p5[++dim]=5;
else {
if((dim+1)%2==0)p5[++dim]=p5[dim/2]*p5[dim/2];
else p5[++dim]=p5[dim/2]*p5[dim/2]*5;
}
}
//for(i=1;i<=25;++i)fprintf(stderr,"%d ",p5[i]);
a[1]=1;
for(i=2;i<=dim;++i)a[i]=a[i-1]*5+1;
for(i=1;p5[i]<=n;++i){}
c=a[i-1];
for(j=p5[i-1]+5;c<n;j+=5){
uv=j;
vc=1;
for(;uv%p5[vc]==0;)++vc;
--vc;
c+=vc;
}
if(c==a[i-1]){
printf("%d",p5[i-1]);
return 0;
}
if(c!=n){
printf("-1");
return 0;
}
printf("%d",uv);
return 0;
}