Cod sursa(job #805976)
| Utilizator | Data | 1 noiembrie 2012 15:59:56 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include<stdio.h>
using namespace std;
int main(){
freopen ("fact.in","r",stdin);
freopen ("fact.out","w",stdout);
int l1,l2,p,k,n,pp=0,m;
l1=1;
l2=1000000000;
scanf ("%d",&p);
if (p==0) {
printf ("1");
return 0;
}
while(l1<=l2 &&pp==0){
k=5;
n=0;
m=(l1+l2)/2;
while(k<=m){
n=n+m/k;
k*=5;
}
if (n==p) pp=1;
else
if (n>p) l2=m;
else l1=m;
}
printf ("%d",m-m%5);
return 0;
}
