Cod sursa(job #1457232)
| Utilizator | Data | 2 iulie 2015 23:07:01 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <fstream>
using namespace std;
long long k, p, u;
long long zero(long long n){
long long p = 5, s = 0;
while (p <= n) {
s += n/p;
p *= 5;
}
return s;
}
int main(){
ifstream fin ("fact.in");
ofstream fout("fact.out");
fin >> k;
p = 1; u = 5*k;
while (p <= u) {
long long mid = (p+u)/2;
if ( zero(mid) >= k )
u = mid - 1;
else
p = mid + 1;
}
if (zero(p) == k)
fout<<p;
else
fout<<-1;
return 0;
}
