Cod sursa(job #3231757)
Utilizator | Neagoie Nicholas-Tiberiu Tibi_21 | Data | 27 mai 2024 17:48:50 |
---|---|---|---|
Problema | Factorial | Scor | 60 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include<fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
const int NMAX = 1e8;
int nr_0(int m)
{
long long p5=5,cnt=0;
while(p5<=m)
{
cnt+=m/p5;
p5*=5;
}
return cnt;
}
int Factorial(int P)
{
int st = 1, dr = NMAX, rez = -1;
while(st <= dr)
{
int m = (st+dr)/2;
if(nr_0(m) == P)
rez = m, dr = m-1;
if(nr_0(m) < P)
st = m+1;
if(nr_0(m) > P)
dr = m-1;
}
return rez;
}
int main()
{
int P;
fin >> P;
fout << Factorial(P) << "\n";
}