# Construct the Rectangle Problem & Solution

A web developer needs to know how to design a web page's size. So, given a specific rectangular web page's area, your job by now is to design a rectangular web page, whose length `L` and width `W` satisfy the following requirements:

• The area of the rectangular web page you designed must equal to the given target area.
• The width `W` should not be larger than the length `L`, which means `L >= W`.
• The difference between length `L` and width `W` should be as small as possible.

Return an array `[L, W]` where `L` and `W` are the length and width of the web page you designed in sequence.

## C++ Solution

``````#pragma GCC optimize("Ofast")
#pragma GCC optimization("unroll-loops")

static const int _=[](){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);return 0;}();

class Solution {
public:
vector<int> constructRectangle(int area) {

// Starts with the square root and keeps decrementing to find an exact match.
for (int i = sqrt(area); i > 0; --i) {
if (area % i == 0) {

// The denominator keeps getting smaller, so `area / i` will be larger.
return {area / i, i};
}
}

// If the area is a prime number, return itself because it's the only way to decompose.
return {area, 1};
}
};
``````

## Start Here

Many paths, there are. Follow yours, you must.