Cod sursa(job #1384851)
| Utilizator | Data | 11 martie 2015 14:41:22 | |
|---|---|---|---|
| Problema | Factorial | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long zero (long long n){
int nr = 0;
while (n >= 5){
nr += n/5;
n /= 5;
}
if (n == 0) return 0;
return nr;
}
int solve(int p){
int i = 0;
long long pas = 1 << 31;
while (pas != 0){
if (zero(i+pas) <= p)
i += pas;
pas /= 2;
}
if (zero(i) == p) return i;
return -1;
}
int main()
{
int p;
in >> p;
int x = solve (p);
if (x == -1) out << -1;
else out << x - 4;
return 0;
}
