原题目:https://leetcode-cn.com/problems/closest-divisors/submissions/
思路:
根据数学常识,相差最小的因数一定是离平方根最近的。找到第一个break就好了。
代码:
class Solution {
public:
vector<int> closestDivisors(int num) {
vector<int> a(2);
int minn = 9999999999;
for(int i=num+1;i<=num+2;i++){
for(int j=sqrt(i);j>=1;j--){
if(i%j==0){
if(abs(j-i/j) < minn){
minn = abs(j-i/j);
a[0]=j;a[1]=i/j;
}
break;
}
}
}
return a;
}
};