Skip to content
Related Articles

Related Articles

Sum of lengths of all 12 edges of any rectangular parallelepiped

View Discussion
Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 25 Sep, 2022
View Discussion
Improve Article
Save Article

Given the area of three faces of the rectangular parallelepiped which has a common vertex. Our task is to find the sum of lengths of all 12 edges of this parallelepiped.
In geometry, a parallelepiped is a three-dimensional figure formed by six parallelograms. By analogy, it relates to a parallelogram just as a cube relates to a square or as a cuboid to a rectangle. A picture of a rectangular parallelepiped is shown below.
 

Examples: 
 

Input: 1 1 1 
Output: 12

Input: 20 10 50
Output: 68

 

Approach: The area given are s1, s2 and s3 . Let a, b and c be the lengths of the sides that have one common vertex. Where s1 = a * b   s2 = b * c   s3 = c * a   . It’s easy to find the length in terms of faces areas: a = \sqrt{s1s3/s2}   b = \sqrt{s1s2/s3}   c = \sqrt{s2s3/s1}   . The answer will be the summation of all the 4 sides, there are four sides that have lengths equal to a, b and c.
In the first example the given area s1 = 1, s2 = 1 and s3 = 1. So with the above approach, the value of a, b, c will come out to be 1. So the sum of the length of all 12 edges will be 4 * 3 = 12.
Below is the implementation of the above approach: 
 

C++




// C++ program to illustrate
// the above problem
#include <bits/stdc++.h>
using namespace std;
 
// function to find the sum of
// all the edges of parallelepiped
double findEdges(double s1, double s2, double s3)
{
    // to calculate the length of one edge
    double a = sqrt(s1 * s2 / s3);
    double b = sqrt(s3 * s1 / s2);
    double c = sqrt(s3 * s2 / s1);
 
    // sum of all the edges of one side
    double sum = a + b + c;
 
    // net sum will be equal to the
    // summation of edges of all the sides
    return 4 * sum;
}
 
// Driver code
int main()
{
    // initialize the area of three
    // faces which has a common vertex
    double s1, s2, s3;
    s1 = 65, s2 = 156, s3 = 60;
 
    cout << findEdges(s1, s2, s3);
 
    return 0;
}

Java




// Java program to illustrate
// the above problem
 
import java.io.*;
 
class GFG {
   
// function to find the sum of
// all the edges of parallelepiped
static double findEdges(double s1, double s2, double s3)
{
    // to calculate the length of one edge
    double a = Math.sqrt(s1 * s2 / s3);
    double b = Math.sqrt(s3 * s1 / s2);
    double c = Math.sqrt(s3 * s2 / s1);
 
    // sum of all the edges of one side
    double sum = a + b + c;
 
    // net sum will be equal to the
    // summation of edges of all the sides
    return 4 * sum;
}
 
       // Driver code
 
    public static void main (String[] args) {
            // initialize the area of three
    // faces which has a common vertex
    double s1, s2, s3;
    s1 = 65; s2 = 156; s3 = 60;
 
    System.out.print(findEdges(s1, s2, s3));
    }
}
 
 
// this code is contributed by anuj_67..

Python3




import math
 
# Python3 program to illustrate
# the above problem
 
# function to find the sum of
# all the edges of parallelepiped
def findEdges(s1, s2, s3):
 
    # to calculate the length of one edge
    a = math.sqrt(s1 * s2 / s3)
    b = math.sqrt(s3 * s1 / s2)
    c = math.sqrt(s3 * s2 / s1)
 
    # sum of all the edges of one side
    sum = a + b + c
 
    # net sum will be equal to the
    # summation of edges of all the sides
    return 4 * sum
 
 
# Driver code
if __name__=='__main__':
     
# initialize the area of three
# faces which has a common vertex
    s1 = 65
    s2 = 156
    s3 = 60
 
    print(int(findEdges(s1, s2, s3)))
         
# This code is contributed by
# Shivi_Aggarwal

C#




// C# program to illustrate
// the above problem
using System;
 
public class GFG{
     
// function to find the sum of
// all the edges of parallelepiped
static double findEdges(double s1, double s2, double s3)
{
    // to calculate the length of one edge
    double a = Math.Sqrt(s1 * s2 / s3);
    double b = Math.Sqrt(s3 * s1 / s2);
    double c = Math.Sqrt(s3 * s2 / s1);
 
    // sum of all the edges of one side
    double sum = a + b + c;
 
    // net sum will be equal to the
    // summation of edges of all the sides
    return 4 * sum;
}
 
// Driver code
 
    static public void Main (){
    // initialize the area of three
    // faces which has a common vertex
    double s1, s2, s3;
    s1 = 65; s2 = 156; s3 = 60;
 
    Console.WriteLine(findEdges(s1, s2, s3));
    }
}
 
 
// This code is contributed by anuj_67..

PHP




<?php
// PHP program to illustrate
// the above problem
 
// function to find the sum of
// all the edges of parallelepiped
function findEdges($s1, $s2, $s3)
{
    // to calculate the length of one edge
    $a = sqrt($s1 * $s2 / $s3);
    $b = sqrt($s3 * $s1 / $s2);
    $c = sqrt($s3 * $s2 / $s1);
 
    // sum of all the edges of one side
    $sum = $a + $b + $c;
 
    // net sum will be equal to the
    // summation of edges of all the sides
    return 4 * $sum;
}
 
// Driver code
 
// initialize the area of three
// faces which has a common vertex
$s1; $s2; $s3;
$s1 = 65; $s2 = 156; $s3 = 60;
 
echo findEdges($s1, $s2, $s3);
 
// This code is contributed by Shashank
?>

Javascript




<script>
    // Javascript program to illustrate the above problem
     
    // function to find the sum of
    // all the edges of parallelepiped
    function findEdges(s1, s2, s3)
    {
        // to calculate the length of one edge
        let a = Math.sqrt(s1 * s2 / s3);
        let b = Math.sqrt(s3 * s1 / s2);
        let c = Math.sqrt(s3 * s2 / s1);
 
        // sum of all the edges of one side
        let sum = a + b + c;
 
        // net sum will be equal to the
        // summation of edges of all the sides
        return 4 * sum;
    }
     
    // initialize the area of three
    // faces which has a common vertex
    let s1, s2, s3;
    s1 = 65; s2 = 156; s3 = 60;
   
    document.write(findEdges(s1, s2, s3));
 
</script>

Output: 

120

 

Time Complexity: O(logn) because the inbuilt sqrt function is being used
Auxiliary Space: O(1)

Reference: https://en.wikipedia.org/wiki/Parallelepiped
 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!