Cod sursa(job #1364526)
Utilizator | Bogdan popescu Bogdanpopescu | Data | 27 februarie 2015 18:25:22 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.77 kb |
#include <fstream>
#include<cmath>
using namespace std;
int main()
{
ifstream f ("fact.in");
ofstream g ("fact.out");
int n,ls,ld,b,p,x,a;
ls=5;
ld=400000015;
b=0;
f>>p;
if(p==0)
{
x=1;
g<<"1";
}
else
{
n=0;
while(ls<=ld && b==0)
{
n=(ls+ld)/2;
x=0;
a=5;
while(a<=n)
{
x=x+n/a;
a=a*5;
}
if(x==p)
{
g<<(n/5)*5;
b=1;
}
else
if(x<p)
ls=n+1;
else
ld=n-1;
}
if(b==0)
g<<"-1";
}
}