Pagini recente » Cod sursa (job #1467632) | Cod sursa (job #1377084) | Cod sursa (job #474386) | Cod sursa (job #1818665) | Cod sursa (job #927331)
Cod sursa(job #927331)
#include <fstream>
using namespace std;
int n,p,i,put;
int pow(int x,int put)
{ int i; int y=x; x=1;
for (i=1;i<=put;++i)
x*=y;
return x;
}
int caut(int n)
{
int st,dr,mij,i,p;
st=1;dr=pow(10,8);mij=(st+dr)/2;
while (st<=dr && mij>0)
{p=0;
mij=(st+dr)/2;
for (i=1;i<=8;i++)
p+=(int)(mij/(pow(5,i)));
if (p==n) return mij;
if (p<n) st=mij+1;
if (p>n) dr=mij-1;
}
}
int main()
{
ifstream f("factorial.in");
ofstream g("factorial.out");
f>>n;p=caut(n);
for (i=1;i<=8;++i) put+=(int)(p/(pow(5,i)));
if (put!=n) g<<"-1"; else
g<<p-p%5;
f.close();
g.close();
return 0;
}