Pagini recente » Cod sursa (job #2174614) | Cod sursa (job #1105469) | Cod sursa (job #1458084) | Cod sursa (job #2807657) | Cod sursa (job #418468)
Cod sursa(job #418468)
#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(sol%5 != 0)
while(sol%5 != 0) sol--;
return;
}
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;
}
sol=-1;
cautB(1,900000,nrzero,sol);
printf("%d\n",sol);
return 0;
}