Given an integer area, the task is to find the length and breadth of a rectangle with the given area such that the difference between the length and the breadth is minimum possible.
Input: area = 99
Output: l = 11, b = 9
All possible rectangles (l, b) are (99, 1), (33, 3) and (11, 9)
And the one with the minimum |l – b| is (11, 9)
Input: area = 25
Output: l = 5, b = 5
Approach: The task is to find two integers l and b such that l * b = area and |l – b| is as minimum as possible. Factorization can be used to solve the problem but doing just simple factorization from 1 to N will take a long time to get the required output for larger values of N.
To overcome this, just iterate upto . Considering < l ≤ N, then for all values of l, b will always be < .
Below is the implementation of the above approach:
// C# implementation of the approach
// Function to print the length (l)
// and breadth (b) of the rectangle
// having area = N and |l – b| as
// minimum as possible
static void find_rectangle(int area)
int l = 0, b = 0;
int M = (int)Math.Sqrt(area);
for (int i = M; i >= 1; i–)
// i is a factor
if (area % i == 0)
// l >= sqrt(area) >= i
l = (area / i);
// so here l is +ve always
b = i;
// Here l and b are length and
// breadth of the rectangle
Console.WriteLine(“l = ” + l + “, b = ” + b);
// Driver code
public static void Main()
int area = 99;
// This code is contributed by Mukul Singh.
l = 11, b = 9
Time Complexity: O()
- Number of squares of side length required to cover an N*M rectangle
- Length and Breadth of rectangle such that ratio of Area to diagonal^2 is maximum
- Minimum squares to evenly cut a rectangle
- Minimum squares to cover a rectangle
- Find minimum area of rectangle with given set of coordinates
- Largest subset of rectangles such that no rectangle fit in any other rectangle
- Minimum length of the shortest path of a triangle
- Minimum length of square to contain at least half of the given Coordinates
- Minimum absolute difference between N and a power of 2
- Minimum difference between groups of size two
- Divide 1 to n into two groups with minimum sum difference
- Sum of minimum difference between consecutive elements of an array
- Minimum sum of absolute difference of pairs of two arrays
- Minimize the difference between minimum and maximum elements
- Queries to add, remove and return the difference of maximum and minimum.
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.