Related Articles
Find maximum volume of a cuboid from the given perimeter and area
• Last Updated : 18 Mar, 2021

Given a perimeter P and area A, the task is to calculate the maximum volume that can be made in form of cuboid from the given perimeter and surface area.

Examples :

```Input: P = 24, A = 24
Output: 8

Input: P = 20, A = 14
Outpu: 3```

Approach: For a given perimeter of cuboid we have P = 4(l+b+h) —(i),
for given area of cuboid we have A = 2 (lb+bh+lh) —(ii).
Volume of cuboid is V = lbh
Volume is dependent on 3 variables l, b, h. Lets make it dependent on only length.

as V = lbh,
=> V = l (A/2-(lb+lh)) {from equation (ii)}
=> V = lA/2 – l2(b+h)
=> V = lA/2 – l2(P/4-l) {from equation (i)}
=> V = lA/2 – l2P/4 + l3 —-(iii)
Now differentiate V w.r.t l for finding maximum of volume.
dV/dl = A/2 – lP/2 + 3l2
After solving the quadratic in l we have l = (P – (P2-24A)1/2) / 12
Substituting value of l in (iii), we can easily find the maximum volume.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the above approach``#include ``using` `namespace` `std;` `// function to return maximum volume``float` `maxVol(``float` `P, ``float` `A)``{``    ``// calculate length``    ``float` `l = (P - ``sqrt``(P * P - 24 * A)) / 12;` `    ``// calculate volume``    ``float` `V = l * (A / 2.0 - l * (P / 4.0 - l));` `    ``// return result``    ``return` `V;``}` `// Driver code``int` `main()``{``    ``float` `P = 20, A = 16;``  ` `    ``// Function call``    ``cout << maxVol(P, A);` `    ``return` `0;``}`

## Java

 `// Java implementation of the above approach``import` `java.util.*;` `class` `Geeks {` `    ``// function to return maximum volume``    ``static` `float` `maxVol(``float` `P, ``float` `A)``    ``{``        ``// calculate length``        ``float` `l``            ``= (``float``)(P - Math.sqrt(P * P - ``24` `* A)) / ``12``;` `        ``// calculate volume``        ``float` `V``            ``= (``float``)(l * (A / ``2.0` `- l * (P / ``4.0` `- l)));` `        ``// return result``        ``return` `V;``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String args[])``    ``{``        ``float` `P = ``20``, A = ``16``;``      ` `        ``// Function call``        ``System.out.println(maxVol(P, A));``    ``}``}` `// This code is contributed by Kirti_Mangal`

## Python3

 `# Python3 implementation of the``# above approach``from` `math ``import` `sqrt` `# function to return maximum volume`  `def` `maxVol(P, A):` `    ``# calculate length``    ``l ``=` `(P ``-` `sqrt(P ``*` `P ``-` `24` `*` `A)) ``/` `12` `    ``# calculate volume``    ``V ``=` `l ``*` `(A ``/` `2.0` `-` `l ``*` `(P ``/` `4.0` `-` `l))` `    ``# return result``    ``return` `V`  `# Driver code``if` `__name__ ``=``=` `'__main__'``:``    ``P ``=` `20``    ``A ``=` `16``    ` `    ``# Function call``    ``print``(maxVol(P, A))` `# This code is contributed``# by Surendra_Gangwar`

## C#

 `// C# implementation of the above approach``using` `System;` `class` `GFG {` `    ``// function to return maximum volume``    ``static` `float` `maxVol(``float` `P, ``float` `A)``    ``{``        ``// calculate length``        ``float` `l``            ``= (``float``)(P - Math.Sqrt(P * P - 24 * A)) / 12;` `        ``// calculate volume``        ``float` `V``            ``= (``float``)(l * (A / 2.0 - l * (P / 4.0 - l)));` `        ``// return result``        ``return` `V;``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``float` `P = 20, A = 16;``       ` `        ``// Function call``        ``Console.WriteLine(maxVol(P, A));``    ``}``}` `// This code is contributed``// by Akanksha Rai`

## PHP

 ``

## Javascript

 ``
Output
`4.14815`

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up