Pagini recente » Cod sursa (job #84015) | Cod sursa (job #78156) | Cod sursa (job #781425) | Cod sursa (job #401207) | Cod sursa (job #2797403)
//Lema:Pentru n natural si p si q numere prime cu p<q avem v_p(n!)>=v_q(n!)
//Dem lema: Rezulta imediat din formula lui Legendre
//Din lema trebuie sa aflam doar v_5(n!)
#include <iostream>
#include <fstream>
#include <cmath>
#include <climits>
using namespace std;
int legendre(int N)
{
int s = 0, i=1;
while (pow(5, i) <= N)
{
s += N / pow(5, i);
i++;
}
return s;
}
int main()
{
ifstream fin("fact.in");
ofstream fout("fact.out");
int P;
fin >> P;
int st = 1, dr = INT_MAX-1, sol=-1;
while (st <= dr)
{
int mij = (st + dr) / 2;
if (legendre(mij) >= P)
{
dr = mij - 1;
if (legendre(mij) == P)
sol = mij;
}
else
{
st = mij + 1;
}
}
fout << sol;
}