Cod sursa(job #2775201)
| Utilizator | Data | 14 septembrie 2021 21:25:13 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 1.17 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)
{
if(P == 0)
return 1;
else
{
int zerouri = 0;
int numar = 5;
bool iesire = false;
bool corect = false;
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;
}