问题
思路
找质因数,如果平方根不行,从较大的一侧开始找即可。
代码
class Solution {
public:
vector<int> constructRectangle(int area) {
std::vector<int> ret;
int sqrt = std::sqrt(area);
if(sqrt*sqrt == area)
{
ret.push_back(sqrt);
ret.push_back(sqrt);
return ret;
}
for( int i = sqrt + 1; i <= area; ++i){
if(!(area%i))
{
ret.push_back(i);
ret.push_back(area/i);
return ret;
}
}
return ret;
}
};