Cod sursa(job #175190)
Utilizator | Patru Ovidiu Roflmao | Data | 9 aprilie 2008 17:55:01 |
---|---|---|---|
Problema | Factorial | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.62 kb |
#include<fstream.h>
#include<iostream.h>
#include<values.h>
#include<math.h>
int main()
{
long p,min=0,total,x,i,max;
fstream f,g;
f.open("fact.in",ios::in);
f>>p;
f.close();
max=500000000;
x=250000000;
min=0;
g.open("fact.out",ios::out);
for(i=1;i<=30;i++)
{
total=0;
for(i=1;i<=12;i++)
total=x/pow(5,i)+total;
if(total==p)
{
x=x-x%5;
g<<x;
break;
}
else
if(total<p)
{
min=x;
x=(min+max)/2;
}
else
{
max=x;
x=(min+max)/2;
}
}
if(i==30)
g<<-1;
g.close();
return 0;
}