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: 12Input: 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++
// 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
// Java program to illustrate// the above problemimport 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.. |
Python3
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#
// 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// 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?> |
Javascript
// JavaScript 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 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;}// Driver code// initialize the area of three// faces which has a common vertexlet s1 = 65, s2 = 156, s3 = 60;console.log(findEdges(s1, s2, s3));//This code is contributed by chinmaya121221 |
120
Time Complexity: O(logn) because the inbuilt sqrt function is being used
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!


… [Trackback]
[…] There you will find 60136 more Information to that Topic: geeksforgeeks.org/sum-of-lengths-of-all-12-edges-of-any-rectangular-parallelepiped/ […]
… [Trackback]
[…] Here you will find 3797 additional Info to that Topic: geeksforgeeks.org/sum-of-lengths-of-all-12-edges-of-any-rectangular-parallelepiped/ […]