Cod sursa(job #2231370)
| Utilizator | Data | 13 august 2018 22:49:48 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll p, last;
ll nr(ll q){
ll cnt = 0;
for (ll 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;
}
