Pagini recente » Cod sursa (job #2473193) | Cod sursa (job #1022386) | Cod sursa (job #1644907) | Cod sursa (job #2501326) | Cod sursa (job #1046343)
#include<stdio.h>
int put (int b,int e)
{
int i,r=1;
for(i=1;i<=e;i++){r=r*b;}
return r;
}
int s=0,pp=5,n,cp,i;
long int x,p;
FILE *f,*g;
int main ()
{
f=fopen("fact.in","r");
fscanf(f,"%ld",&p);fclose(f);
g=fopen("fact.out","w");
if(p==0)fprintf(g,"%d",1);
else if(p==1)fprintf(g,"%d",5);
else{ do{s=s+pp-1;pp*=5;n++;}while(s<p);
x=(put(5,n)/(put(5,n)-1))*4*p;
if(x%10!=5){
if(x%10<5){x=x-x%10+5;}
else{x=x-x%10+10;}}
for(i=1;i<=n;i++){cp=cp+x/put(5,i);}
while((cp!=p)&&(x<(put(5,n)/(put(5,n)-1))*4*(p+n-1))){
x+=5;
cp=0;
for(i=1;i<=n;i++){cp=cp+x/put(5,i);}}
if(cp==p)fprintf(g,"%ld",x);
else fprintf(g,"%d",-1);
}
fclose(g);
return 0;
}