Cod sursa(job #400993)
| Utilizator | Data | 22 februarie 2010 11:51:46 | |
|---|---|---|---|
| Problema | Factorial | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<fstream.h>
ifstream intrare("fact.in");
ofstream iesire("fact.out");
long p;
long verif(long long c)
{
long i=0;
while((c!=0)&&(i<=p+5))
{
i+=c/5;
c/=5;
}
return i;
}
void cautbin(long long a,long long b)
{
if(a<b)
{
long long c=(a+b)/2;
long x=verif(c);
if(x>p) cautbin(a,c-1);
else if(x<p) cautbin(c+1,b);
else iesire<<c-(c%5);
}
else iesire<<"-1";
}
int main()
{
intrare>>p;
cautbin(0,1000000);
return 0;
}
