Cod sursa(job #806172)
Utilizator | Data | 1 noiembrie 2012 23:23:09 | |
---|---|---|---|
Problema | Factorial | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.23 kb |
# include<fstream>
using namespace std;
int nr_zerouri(int d)
{
int n;
n=0;
while (d>4)
{
d=d/5;
n=n+d;
}
return n;
}
int main()
{
ifstream cin("fact.in");
ofstream cout("fact.out");
int p,n,a,b,c,d;
cin >> p;
a=1;
b=100000010;
while(a<=b)
{
c=(a+b)/2;
d=c;
n=0;
while (d>4)
{
d=d/5;
n=n+d;
}
if(n==p)
{
a=c+1; b=c;
}
else
{
if(n<p)
{
a=c+1;
}
else
{
b=c-1;
}
}
}
if (p==0)
{
cout<<1;
}
else
{
d=b;
n=0;
while (d>4)
{
d=d/5;
n=n+d;
}
if(n!=p)
{
cout << -1 ;
}
else
{
while(n==p)
{
b--;
d=b;
n=0;
while (d>4)
{
d=d/5;
n=n+d;
}
}
cout << b+1;
}
}
}