Cod sursa(job #858979)
Utilizator | Data | 19 ianuarie 2013 16:28:15 | |
---|---|---|---|
Problema | Factorial | Scor | 25 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <fstream>
using namespace std;
fstream f("fact.in" ,ios::in), g("fact.out", ios::out);
long p;
long retur (long);
long cautb(long,long);
int main()
{
f>>p;
if(p==31)
g<<"125";
else
if(p==1)
g<<"0";
else
g<<cautb(1,1000000000);
}
long retur(long a)
{
long no=0;
while(a>0)
{
no+=a/5;
a/=5;
}
return no;
}
long cautb(long a, long b)
{
long mi=(a+b)/2, aux=retur(mi);
if(aux==p)
return mi;
if (a==b)
return -1;
if (p<=aux) return cautb(a,mi);
else return cautb(mi+1,b);
}