Horje
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++

<?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

 

Time Complexity: O(log(min(l,b)))

Auxiliary Space: O(log(min(l, b)))




Reffered: https://www.geeksforgeeks.org


Geometric

Related
Find all angles of a triangle in 3D Find all angles of a triangle in 3D
Maximum number of pieces in N cuts Maximum number of pieces in N cuts
Check if it is possible to create a polygon with a given angle Check if it is possible to create a polygon with a given angle
Program to check whether 4 points in a 3-D plane are Coplanar Program to check whether 4 points in a 3-D plane are Coplanar
Number of possible pairs of Hypotenuse and Area to form right angled triangle Number of possible pairs of Hypotenuse and Area to form right angled triangle

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
8