https://leetcode.com/problems/kth-smallest-number-in-multiplication-table/description/
class Solution {
public:
int findKthNumber(int m, int n, int k) {
if(m<n) swap(m, n);
int left = 1, right= k;
while (left!=right) {
int x =0, mid = (left+right)/2;
for(int i=1; i<=n&&i<=mid; i++){
if(mid/i<m) x+=(mid/i);
else x+=m;
}
if(x>=k) right = mid;
else left = mid+1;
}
for(;left>0; left--){
for(int i=1; i<=n; i++){
if(left%i==0&&left/i<=m) return left;
}
}
}
};