Sum of lengths of all 12 edges of any rectangular parallelepiped
Last Updated :
15 Mar, 2023
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++
#include <bits/stdc++.h>
using namespace std;
double findEdges( double s1, double s2, double s3)
{
double a = sqrt (s1 * s2 / s3);
double b = sqrt (s3 * s1 / s2);
double c = sqrt (s3 * s2 / s1);
double sum = a + b + c;
return 4 * sum;
}
int main()
{
double s1, s2, s3;
s1 = 65, s2 = 156, s3 = 60;
cout << findEdges(s1, s2, s3);
return 0;
}
|
Java
import java.io.*;
class GFG {
static double findEdges( double s1, double s2, double s3)
{
double a = Math.sqrt(s1 * s2 / s3);
double b = Math.sqrt(s3 * s1 / s2);
double c = Math.sqrt(s3 * s2 / s1);
double sum = a + b + c;
return 4 * sum;
}
public static void main (String[] args) {
double s1, s2, s3;
s1 = 65 ; s2 = 156 ; s3 = 60 ;
System.out.print(findEdges(s1, s2, s3));
}
}
|
Python3
import math
def findEdges(s1, s2, s3):
a = math.sqrt(s1 * s2 / s3)
b = math.sqrt(s3 * s1 / s2)
c = math.sqrt(s3 * s2 / s1)
sum = a + b + c
return 4 * sum
if __name__ = = '__main__' :
s1 = 65
s2 = 156
s3 = 60
print ( int (findEdges(s1, s2, s3)))
|
C#
using System;
public class GFG{
static double findEdges( double s1, double s2, double s3)
{
double a = Math.Sqrt(s1 * s2 / s3);
double b = Math.Sqrt(s3 * s1 / s2);
double c = Math.Sqrt(s3 * s2 / s1);
double sum = a + b + c;
return 4 * sum;
}
static public void Main (){
double s1, s2, s3;
s1 = 65; s2 = 156; s3 = 60;
Console.WriteLine(findEdges(s1, s2, s3));
}
}
|
PHP
<?php
function findEdges( $s1 , $s2 , $s3 )
{
$a = sqrt( $s1 * $s2 / $s3 );
$b = sqrt( $s3 * $s1 / $s2 );
$c = sqrt( $s3 * $s2 / $s1 );
$sum = $a + $b + $c ;
return 4 * $sum ;
}
$s1 ; $s2 ; $s3 ;
$s1 = 65; $s2 = 156; $s3 = 60;
echo findEdges( $s1 , $s2 , $s3 );
?>
|
Javascript
function findEdges(s1, s2, s3) {
let a = Math.sqrt(s1 * s2 / s3);
let b = Math.sqrt(s3 * s1 / s2);
let c = Math.sqrt(s3 * s2 / s1);
let sum = a + b + c;
return 4 * sum;
}
let s1 = 65, s2 = 156, s3 = 60;
console.log(findEdges(s1, s2, s3));
|
Time Complexity: O(logn) because the inbuilt sqrt function is being used
Auxiliary Space: O(1)
Share your thoughts in the comments
Please Login to comment...