Cod sursa(job #2065962)
| Utilizator | Data | 14 noiembrie 2017 16:20:06 | |
|---|---|---|---|
| Problema | Factorial | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <fstream>
using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
int P;
int nrzero(int nr);
int main()
{
int pas = 1 << 30, i = 1;
cin >> P;
while(pas)
{
int nrz = nrzero(i + pas);
if(nrz <= P - 1) i += pas;
pas /= 2;
}
if(nrzero(i + 1) == P)
cout << i + 1;
else cout << -1;
return 0;
}
int nrzero(int n)
{
int nrz = 0;
while(n > 1)
{
nrz += n / 5;
n /= 5;
}
return nrz;
}
