Cod sursa(job #2775425)
Utilizator | Pricope Marius MariusAndrei16 | Data | 15 septembrie 2021 19:17:23 |
---|---|---|---|
Problema | Factorial | Scor | 75 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 1.16 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int P; //numarul intreg
int factorial_zero(int P)
{
bool iesire = false;
bool corect = false;
int zerouri = 0;
int numar = P * 5;
if(P == 0)
return 1;
else
{
while (!iesire && !corect)
{
int copie_numar = numar;
while (copie_numar / 5 != 0 && zerouri <= P)
{
zerouri += copie_numar / 5;
copie_numar /= 5;
}
if(zerouri < P)
{
iesire = true;
}
else if(zerouri == P)
{
corect = true;
}
else {
if(numar >= 5)
{
numar -= 5;
}
else
numar--;
zerouri = 0;
}
}
}
if(iesire == true)
return -1;
else
return numar;
}
int main()
{
in >> P;
out << factorial_zero(P);
return 0;
}