Pagini recente » Cod sursa (job #1899318) | Cod sursa (job #2469525) | Cod sursa (job #1062691) | Cod sursa (job #1918614) | Cod sursa (job #73285)
Cod sursa(job #73285)
#include<stdio.h>
FILE *f=fopen("fact.in","r"),
*g=fopen("fact.out","w");
long long p,n,i,v,m,ok;
long long zero(long long n)
{ long long q=5,k=0;
while(q<n) { k+=n/q;
q*=5;
}
return k;
}
long long caut(long long k)
{ while(zero(k)==p && k)--k;
++k;
// while(k%5) --k;
return k;
}
int main()
{ fscanf(f,"%lld",&p);
n=500000000;
long long left=1,right=n;
ok=1;
while(left<=right&&ok){ m=(left+right)>>1;v=zero(m);
if(v==p) n=caut(m),ok=0;
else if(left>=right)break;
else if(v>p) right=m+1;
else left=m;
}
if(p==0) fprintf(g, "1\n");
else
if(n==0) fprintf(g, "%lld\n", -1);
else
if(!ok)fprintf(g,"%lld\n",n);
else fprintf(g,"-1\n");
fclose(f);
fclose(g);
return 0;
}