Cod sursa(job #2776275)
Utilizator | Pierre Alex Pierre | Data | 19 septembrie 2021 10:13:32 |
---|---|---|---|
Problema | Factorial | Scor | 20 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.77 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int nr_de_zerouri(int n);
int main()
{
int p;
fin >> p;
if(p == 0)
{
fout << 1;
}
else
{
for(int i = 5; i <= 100000000; i += 5)
{
int k = nr_de_zerouri(i);
if(k == p)
{
fout << i;
break;
}
else if(k > p)
{
fout << -1;
break;
}
}
}
fin.close();
fout.close();
return 0;
}
int nr_de_zerouri(int n)
{
int nr = 0;
for(int i = 5; n / i >= 1; i *= 5)
{
nr += n / i;
}
return nr;
}