Pagini recente » Cod sursa (job #823579) | Cod sursa (job #2520609) | Cod sursa (job #1379977) | Cod sursa (job #757492) | Cod sursa (job #155127)
Cod sursa(job #155127)
#include<fstream.h>
#include<math.h>
long p;
long calcul (long n)
{
long i,j,q;
i=1;
while (n>=pow(5,i)) i++;
i--;
q=0;
for (j=1;j<=i;j++) q+=n/pow(5,j);
return q;
}
void cauta (long &n,long a, long b)
{
long s;
while (a+1<b && s!=p)
{
n=(a+b)/2;
s=calcul(n);
if (s<p) a=n;
else if (s>p) b=n;
}
if (s!=p) if (calcul(a+1)==p) n=a+1;
else if (calcul(a)==p) n=a;
else n=-1;
}
long main()
{
long n;
ifstream g("fact.in");
g>>p;
g.close();
cauta (n,1,450000000);
if (n!=-1) n-=n%5;
ofstream f("fact.out");
if (p<5) f<<0;
else f<<n;
f.close();
return 0;
}