Cod sursa(job #875807)
| Utilizator | Data | 10 februarie 2013 20:20:30 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <stdio.h>
int get5(int nr){
int ans=0;
for(int k=5;k<=nr;k*=5){
ans+=nr/k;
}
return ans;
}
int main(){
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int p;
scanf("%d",&p);
if(p==0){printf("1");return 0;}
int st=1,dr=2000000000;
while(st<dr){
int m = st+(dr-st)/2;
int g5=get5(m);
//if(g5==p){printf("%d",m);return 0;}
if(p<=g5){
dr=m;
}
else{
st=m+1;
}
}
printf("%d",st);
return 0;
}