Cod sursa(job #361485)
Utilizator | Data | 5 noiembrie 2009 14:15:21 | |
---|---|---|---|
Problema | Factorial | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.4 kb |
#include <fstream.h>
long p,l,u,m,nr,c;
ifstream f("fact.in");
ofstream g("fact.out");
int main(){
f>>p;
l=1;u=200;
while (l<=u){
m=(l+u)/2;
nr=0;c=1;
while (m>=c){
c=c*5;
nr+=m/c;
}
if (nr==p){
c=1; nr=0;
while ((m-1)>=c)
{ c=c*5;
nr+=(m-1)/c; }
break;}
else if (nr>p)
u=m-1;
else l=m+1;
}
if (l<=u)
g<<m;
else g<<-1;
return 0;}