关于最少尾数0的个数,只有2的倍数与5的倍数相乘才能得到0,显然2的倍数比5的倍数多的多,现在目标找5的倍数的个数
#include<bits/stdc++.h>
#define endl "\n"
#define int long long
#define x first
#define y second
using namespace std;
typedef long long ll;typedef pair<int, int> PII;const int N = 5e5 + 10, mod = 1e9 + 7, inf = 6e18;
const double eps = 1e-7;int n, m;
int a[N];int cal(int mid){int ans = 0;while(mid){ans += mid / 5;mid /= 5;}return ans;//5的倍数的个数
}void solve()
{int x;cin >> x;int l = 1, r = inf;while(l < r){int mid = l + r >> 1;if(cal(mid) >= x) r = mid;else l = mid + 1;}if(cal(l) == x) cout << l << endl;else cout << -1 << endl;
}signed main(){ ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);int t = 1;// cin >> t;while(t --) solve();return 0;
}