Cod sursa(job #629015)
| Utilizator | Data | 2 noiembrie 2011 16:21:06 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | gc_practice | Marime | 0.45 kb |
// Factorial - Infoarena
#include <fstream>
using namespace std;
int zero(int a){
int nr=0,p=5;
while(a/p)
{
nr=nr+(a/p);
p*=5;
}
return nr;
}
int main()
{
int p,l,r,m,n,nr;
ifstream f("fact.in");
ofstream g("fact.out");
f>>p;
if(p==0){
g<<"1\n";
return 0;
}
l=1, r=5*p, n=-1;
while(l<=r){
m=l+(r-l)/2;
nr=zero(m);
if(p==nr)
n=m;
if(nr<p)
l=m+1;
else r=m-1;
}
g<<n<<"\n";
return 0;
}
