class Solution {
public:
vector<int> closestDivisors(int num) {
vector<vector<int>> res;
long long v = sqrt(num + 2);
int num1 = num + 1;
int num2 = num + 2;
// cout << v << endl;
for(int i = v; i > 0 && !res.size(); i--)
{
if(num1 % i == 0)
{
res.push_back({i, num1/i});
}
if(num2 % i == 0)
{
res.push_back({i, num2/i});
}
}
return res[0];
}
};
简洁代码
class Solution {
public:
vector<int> closestDivisors(int num) {
long long v = sqrt(num + 2);
int num1 = num + 1;
int num2 = num + 2;
for(int i = v; i > 0; i--)
{
if(num1 % i == 0) return {i, num1/i};
if(num2 % i == 0) return {i, num2/i};
}
return {0, 0};
}
};