Pagini recente » Cod sursa (job #2753442) | Cod sursa (job #2924348) | Cod sursa (job #1166277) | Cod sursa (job #2107214) | Cod sursa (job #93648)
Cod sursa(job #93648)
#include<fstream.h>
ifstream f("fact.in");
ofstream g("fact.out");
unsigned long a[]={5,30,155,780,3905,19530,97655,488280,2441405,12207030,61035155,305175780};
int main()
{ long long n,p,st,dr,sum,ok,k,i;
f>>p;
f.close();
if(p==0){ g<<"1"; g.close(); return 0; }
if(p==1){ g<<"5"; g.close(); return 0; }
for(i=0;i<12;i++) if(p==a[i]) { g<<"-1"; g.close(); return 0; }
ok=1;
st=0;
dr=(long long)1<<30;
while(ok){ n=(st+dr)>>1;
sum=0;
for(k=5;n>=k;k=k*5) sum=sum+n/k;
if(sum>p) dr=n-1;
else if(sum<p) st=n+1;
else ok=0;
if(dr<st) ok=0;
}
if(dr<st){ g<<"-1"; g.close(); return 0; }
n=n-n%5;
g<<n;
g.close();
return 0;
}