Cod sursa(job #2653762)
Utilizator | David Ghiberdic cyg_dawid | Data | 29 septembrie 2020 00:18:01 |
---|---|---|---|
Problema | Factorial | Scor | 90 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <fstream>
#define ll long long
using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
ll NMAX = 1e9+1;
ll n;
ll st, dr, med;
ll cnt;
ll ans;
void zer() {
cnt = 0;
ll aux = 5;
for(; aux <= med; aux *= 5)
cnt += med / aux;
}
ll bs() {
st = 1; dr = NMAX;
while(st <= dr) {
med = (st + dr) / 2;
zer();
if(cnt == n) {
ans = med;
dr = med - 1;
} else if(cnt > n)
dr = med - 1;
else
st = med + 1;
}
return ans;
}
int main()
{
cin >> n;
cout << bs();
return 0;
}