Pagini recente » Borderou de evaluare (job #1551322) | Borderou de evaluare (job #594516) | Borderou de evaluare (job #984812) | Borderou de evaluare (job #1627920) | Cod sursa (job #3231748)
#include<fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
const int NMAX = 1e8;
int nr_0(int m)
{
int nrz = 0;
for(int i = 5; i <= m; i+=5)
if(i % 5 == 0)
{
int ci = i;
while(ci % 5 == 0)
nrz++, ci /= 5;
}
return nrz;
}
int Factorial(int P)
{
int st = 1, dr = NMAX, rez;
while(st <= dr)
{
int m = (st+dr)/2;
if(nr_0(m) >= P)
rez = m, dr = m-1;
else
st = m+1;
}
return rez;
}
int main()
{
int P;
fin >> P;
fout << Factorial(P) << "\n";
}