Cod sursa(job #2928972)
| Utilizator | Data | 24 octombrie 2022 12:35:36 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
int main(){
long long x; fin >> x;
long long l = 1, r = 1e15, ans = -1;
while (l <= r){
long long mid = l + (r - l) / 2;
long long cnt = 0, y = mid;
while (y > 0){
cnt += y / 5;
y = y / 5;
}
if (cnt >= x){
ans = mid;
r = mid - 1;
}
else{
l = mid + 1;
}
}
long long cnt = 0, y = ans;
while (y > 0){
cnt += y / 5;
y = y / 5;
}
fout << (cnt == x ? ans : -1);
}
