Pagini recente » Cod sursa (job #2181343) | Cod sursa (job #698970) | Cod sursa (job #1614864) | Cod sursa (job #889247) | Cod sursa (job #417946)
Cod sursa(job #417946)
#include<stdio.h>
#include<math.h>
int put(int n) {
int cnt=0;
while(n%5==0) n/=5, ++cnt;
return cnt;
}
int factzero(int n) {
int i,cnt=0;
for(i=5; i<=n; i+=5)
cnt+=put(i);
return cnt;
}
void cautB(int st, int dr, int nrzero, int &sol) {
if(st>dr) return;
int mij=(st+dr)/2,val=factzero(mij);
if(val==nrzero) {
sol=mij;
if(st<=mij-1) cautB(st,mij-1,nrzero,sol);
}
if(val>nrzero) cautB(st,mij-1,nrzero,sol);
else cautB(mij+1,dr,nrzero,sol);
}
int main() {
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int nrzero,st,dr,mij,sol;
scanf("%d",&nrzero);
if(nrzero==0) {
printf("1\n");
return 0;
}
cautB(1,900000,nrzero,sol);
printf("%d\n",sol);
return 0;
}