Sum of lengths of all 12 edges of any rectangular parallelepiped - GeeksforGeeks

28 May, 2021
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 , , . It’s easy to find the length in terms of faces areas: , , . 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++
Java
Python3
C#
PHP
Javascript
// C++ program to illustrate// the above problem#include <bits/stdc++.h>using namespace std; // function to find the sum of// all the edges of parallelepipeddouble 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 codeint 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 program to illustrate// the above problem import java.io.*; class GFG {   // function to find the sum of// all the edges of parallelepipedstatic 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..
import math # Python3 program to illustrate# the above problem # function to find the sum of# all the edges of parallelepipeddef 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 codeif __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# program to illustrate// the above problemusing System; public class GFG{     // function to find the sum of// all the edges of parallelepipedstatic 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 program to illustrate// the above problem // function to find the sum of// all the edges of parallelepipedfunction 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?>
<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>
120
 
Reference: https://en.wikipedia.org/wiki/Parallelepiped 
vt_m
Shashank12
Shivi_Aggarwal
nidhi_biet
decode2207
Geometric
Mathematical
Mathematical
Geometric
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Haversine formula to find distance between two points on a sphere
Program to find slope of a line
Equation of circle when three points on the circle are given
Program to find line passing through 2 Points
Maximum Manhattan distance between a distinct pair from N coordinates
Program for Fibonacci numbers
Write a program to print all permutations of a given string
C++ Data Types
Set in C++ Standard Template Library (STL)
Coin Change | DP-7