# Smallest square formed with given rectangles

Given a rectangle of length **l** and breadth **b**, we need to find the area of the smallest square which can be formed with the rectangles of these given dimensions. **Examples:**

Input : 1 2 Output : 4 We can form a 2 x 2 square using two rectangles of size 1 x 2. Input : 7 10 Output :4900

Let’s say we want to make a square of side length **a** from rectangles of length **l** & **b**. This means that **a** is a multiple of both **l** & **b**. Since we want the smallest square, it has to be the **lowest common multiple** (LCM) of **l** & **b**.**Program 1**:

## C++

`// C++ Program to find the area` `// of the smallest square which` `// can be formed with rectangles` `// of given dimensions` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Recursive function to return gcd of a and b` `int` `gcd(` `int` `a, ` `int` `b)` `{` ` ` `// Everything divides 0` ` ` `if` `(a == 0 || b == 0)` ` ` `return` `0;` ` ` `// Base case` ` ` `if` `(a == b)` ` ` `return` `a;` ` ` `// a is greater` ` ` `if` `(a > b)` ` ` `return` `gcd(a - b, b);` ` ` `return` `gcd(a, b - a);` `}` `// Function to find the area` `// of the smallest square` `int` `squarearea(` `int` `l, ` `int` `b)` `{` ` ` `// the length or breadth or side` ` ` `// cannot be negative` ` ` `if` `(l < 0 || b < 0)` ` ` `return` `-1;` ` ` `// LCM of length and breadth` ` ` `int` `n = (l * b) / gcd(l, b);` ` ` `// squaring to get the area` ` ` `return` `n * n;` ` ` `}` `// Driver code` `int` `main()` `{` ` ` `int` `l = 6, b = 4;` ` ` `cout << squarearea(l, b) << endl;` ` ` `return` `0;` `}` |

## Java

`// JavaProgram to find the area` `// of the smallest square which` `// can be formed with rectangles` `// of given dimensions` `class` `GFG` `{` `// Recursive function to` `// return gcd of a and b` `static` `int` `gcd(` `int` `a, ` `int` `b)` `{` `// Everything divides 0` `if` `(a == ` `0` `|| b == ` `0` `)` ` ` `return` `0` `;` `// Base case` `if` `(a == b)` ` ` `return` `a;` `// a is greater` `if` `(a > b)` ` ` `return` `gcd(a - b, b);` `return` `gcd(a, b - a);` `}` `// Function to find the area` `// of the smallest square` `static` `int` `squarearea(` `int` `l, ` `int` `b)` `{` `// the length or breadth or side` `// cannot be negative` `if` `(l < ` `0` `|| b < ` `0` `)` ` ` `return` `-` `1` `;` ` ` `// LCM of length and breadth` ` ` `int` `n = (l * b) / gcd(l, b);` ` ` `// squaring to get the area` ` ` `return` `n * n;` `}` `// Driver code` `public` `static` `void` `main(String[] args)` `{` ` ` `int` `l = ` `6` `, b = ` `4` `;` ` ` `System.out.println(squarearea(l, b));` `}` `}` `// This code is contributed` `// by ChitraNayal` |

## Python 3

`# Python3 Program to find the area` `# of the smallest square which` `# can be formed with rectangles` `# of given dimensions` `# Recursive function to return gcd of a and b` `def` `gcd( a, b):` ` ` `# Everything divides 0` ` ` `if` `(a ` `=` `=` `0` `or` `b ` `=` `=` `0` `):` ` ` `return` `0` ` ` `# Base case` ` ` `if` `(a ` `=` `=` `b):` ` ` `return` `a` ` ` `# a is greater` ` ` `if` `(a > b):` ` ` `return` `gcd(a ` `-` `b, b)` ` ` `return` `gcd(a, b ` `-` `a)` `# Function to find the area` `# of the smallest square` `def` `squarearea( l, b):` ` ` `# the length or breadth or side` ` ` `# cannot be negative` ` ` `if` `(l < ` `0` `or` `b < ` `0` `):` ` ` `return` `-` `1` ` ` `# LCM of length and breadth` ` ` `n ` `=` `(l ` `*` `b) ` `/` `gcd(l, b)` ` ` `# squaring to get the area` ` ` `return` `n ` `*` `n` ` ` `# Driver code` `if` `__name__` `=` `=` `'__main__'` `:` ` ` `l ` `=` `6` ` ` `b ` `=` `4` ` ` `print` `(` `int` `(squarearea(l, b)))` `#This code is contributed by ash264` |

## C#

`// C# Program to find the area` `// of the smallest square which` `// can be formed with rectangles` `// of given dimensions` `using` `System;` `class` `GFG` `{` `// Recursive function to` `// return gcd of a and b` `static` `int` `gcd(` `int` `a, ` `int` `b)` `{` `// Everything divides 0` `if` `(a == 0 || b == 0)` ` ` `return` `0;` `// Base case` `if` `(a == b)` ` ` `return` `a;` `// a is greater` `if` `(a > b)` ` ` `return` `gcd(a - b, b);` `return` `gcd(a, b - a);` `}` `// Function to find the area` `// of the smallest square` `static` `int` `squarearea(` `int` `l, ` `int` `b)` `{` `// the length or breadth or side` `// cannot be negative` `if` `(l < 0 || b < 0)` ` ` `return` `-1;` ` ` `// LCM of length and breadth` ` ` `int` `n = (l * b) / gcd(l, b);` ` ` `// squaring to get the area` ` ` `return` `n * n;` `}` `// Driver code` `public` `static` `void` `Main()` `{` ` ` `int` `l = 6, b = 4;` ` ` `Console.Write(squarearea(l, b));` `}` `}` `// This code is contributed` `// by ChitraNayal` |

## PHP

`<?php` `// PHP Program to find the area` `// of the smallest square which` `// can be formed with rectangles` `// of given dimensions` `// Recursive function to` `// return gcd of a and b` `function` `gcd(` `$a` `, ` `$b` `)` `{` ` ` `// Everything divides 0` ` ` `if` `(` `$a` `== 0 || ` `$b` `== 0)` ` ` `return` `0;` ` ` `// Base case` ` ` `if` `(` `$a` `== ` `$b` `)` ` ` `return` `$a` `;` ` ` `// a is greater` ` ` `if` `(` `$a` `> ` `$b` `)` ` ` `return` `gcd(` `$a` `- ` `$b` `, ` `$b` `);` ` ` `return` `gcd(` `$a` `, ` `$b` `- ` `$a` `);` `}` `// Function to find the area` `// of the smallest square` `function` `squarearea(` `$l` `, ` `$b` `)` `{` ` ` `// the length or breadth or side` ` ` `// cannot be negative` ` ` `if` `(` `$l` `< 0 || ` `$b` `< 0)` ` ` `return` `-1;` ` ` `// LCM of length and breadth` ` ` `$n` `= (` `$l` `* ` `$b` `) / gcd(` `$l` `, ` `$b` `);` ` ` `// squaring to get the area` ` ` `return` `$n` `* ` `$n` `;` ` ` `}` `// Driver code` `$l` `= 6;` `$b` `= 4;` `echo` `squarearea(` `$l` `, ` `$b` `).` `"\n"` `;` `// This code is contributed` `// by ChitraNayal` `?>` |

## Javascript

`<script>` `// Javascript Program to find the area` `// of the smallest square which` `// can be formed with rectangles` `// of given dimensions` `// Recursive function to` `// return gcd of a and b` `function` `gcd(a , b)` `{` ` ` `// Everything divides 0` ` ` `if` `(a == 0 || b == 0)` ` ` `return` `0;` ` ` ` ` `// Base case` ` ` `if` `(a == b)` ` ` `return` `a;` ` ` ` ` `// a is greater` ` ` `if` `(a > b)` ` ` `return` `gcd(a - b, b);` ` ` `return` `gcd(a, b - a);` `}` `// Function to find the area` `// of the smallest square` `function` `squarearea(l , b)` `{` `// the length or breadth or side` `// cannot be negative` `if` `(l < 0 || b < 0)` ` ` `return` `-1;` ` ` `// LCM of length and breadth` ` ` `var` `n = (l * b) / gcd(l, b);` ` ` `// squaring to get the area` ` ` `return` `n * n;` `}` `// Driver code` ` ` `var` `l = 6, b = 4;` ` ` `document.write(squarearea(l, b));` `// This code is contributed by Amit Katiyar` `</script>` |

**Output:**

144

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend **live classes **with experts, please refer **DSA Live Classes for Working Professionals **and **Competitive Programming Live for Students**.