Cod sursa(job #2229006)
| Utilizator | Data | 5 august 2018 17:20:08 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <bits/stdc++.h>
using namespace std;
int p, last;
int nr(int q){
int cnt = 0;
for (int i=5; i<=q; i*=5) cnt += q/i;
return cnt;
}
int main(){
ifstream cin ("fact.in");
ofstream cout ("fact.out");
cin >> p;
int st = 1, dr = 305175781;
while (st < dr){
int mid = (st + dr) >> 1;
if (nr(mid) >= p) dr = mid;
else st = mid + 1;
}
if (nr(st) == p) return cout << st, 0;
return cout << -1, 0;
}
