Pagini recente » Cod sursa (job #3129950) | Cod sursa (job #2274107) | Cod sursa (job #2836588) | Cod sursa (job #2418253) | Cod sursa (job #48294)
Cod sursa(job #48294)
#include<fstream.h>
long nr;
int n;
void citire()
{
ifstream in("fact.in");
in>>n;
in.close();
}
long nrz( long c )
{
long p = 0;
while( c )
{
p += c/5;
c /= 5;
}
return p;
}
long cautare()
{
long long p, u, a, ok=1, exa, m;
p=1; u=5000000000;
a=(p+u)/2;
m=nrz(a);
while (ok)
{
exa=a;
if (m==n) ok=0;
else if (m>n) { u=a; a=(p+u)/2;}
else { p=a; a=(p+u)/2; }
m=nrz(a);
if (exa==a) break;
}
if (ok==0) return a;
else return -1;
}
void reduc()
{
long long m;
m=nrz(nr);
while (m==n)
{
nr--;
m=nrz(nr);
}
nr++;
}
int main()
{
citire();
ofstream out("fact.out");
nr=cautare();
if (nr!=-1)
reduc();
if (!nr) nr++;
out<<nr;
out.close();
return 0;
}