Cod sursa(job #2710382)
| Utilizator | Data | 22 februarie 2021 15:27:16 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <iostream>
using namespace std;
int n,v[10001];
long long legrange_5(long long n) {
long long p = 5;
long long sol = 0;
while( n>= p) {
sol += n/p;
p *= 5;
}
return sol;
}
int main() {
long long p,k,ans,mij,st = 0,dr = 1000000000000001;
cin >> k;
while(st <= dr) {
int mij = (st + dr) >> 1;
if(legrange_5(mij) < k) {
st=mij+1;
}
else if(legrange_5(mij) > k) {
dr = mij-1;
}
else if(legrange_5(mij) ==k) {
ans = mij;
if(mij==1)
break;
dr = mij-1;
}
}
cout << ans;
}
