class Solution {
public:
vector<int> closestDivisors(int num) {
vector<int>res;
int a = num+1;
int b = num+2;
int a1 = sqrt(a);
int left1 = a1, right1 = a1;
int a2 = sqrt(b);
int left2 = a2, right2 = a2;
while(left1 > 0 && right1 <= a)
{
if(left1*right1 == a)
{
res.push_back(left1);
res.push_back(right1);
break;
}
else if(left1*right1 < a)
{
right1++;
}
else
{
left1--;
}
if(left2*right2 == b)
{
res.push_back(left2);
res.push_back(right2);
break;
}
else if(left2*right2 < b)
{
right2++;
}
else
{
left2--;
}
}
return res;
}
};
别人写的:真简洁。。。
https://leetcode-cn.com/problems/closest-divisors/solution/5171-zui-jie-jin-de-yin-shu-9xing-dai-ma-el1s-by-e/