Pagini recente » Cod sursa (job #3129660) | Cod sursa (job #1347860) | Cod sursa (job #281094) | Cod sursa (job #2055347) | Cod sursa (job #2222145)
#include <fstream>
using namespace std;
int v[12]= {0,4,28,152,776,3900,19524,97648,488272,2441396,12207020,61035144};
int p5[12]= {0,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625};
ifstream cin("fact.in");
ofstream cout("fact.out");
int main() {
int p,i,st,dr,rez;
cin>>p;
i=1;
while(p>v[i])
i++;
if(p==0)
cout<<"1";
else if(i<=12) {
st=p5[i-1];
dr=p5[i]-1;
int med,last=-1,p51,sum;
int j;
while(st<=dr) {
med=st+(dr-st)/2; ///st+(dr-st)/2
sum=0;
p51=5;
for(j=1; j<=i; j++) {
sum+=med/p51;
p51*=5;
}
if(sum>=p) {
dr=med-1;
if(sum==p)
last=med;
} else {
st=med+1;
}
}
cout<<last;
}
return 0;
}