Given sphere of radius . The task is to find the radius of base and height of the largest right circular cone that can be inscribed within it.

**Examples**:

Input: R = 10Output: r = 9.42809, h = 13.3333Input: R = 25Output: r = 23.5702, h = 33.3333

**Approach**:

Let the radius of the cone = **r**

height of the cone = **h**

From the diagram it is clear that:

**x = √(R^2 – r^2) and h=x+R**

Now using these values we get,

To maximize the volume of the cone(V):

V = (πr^{2}h)/3From the diagram,

V = (πr^{2}R)/3 + πr^{2}√(R^{2}– r^{2})/3Taking first derivative of

Vwith respect torwe get,

Now, setting

dV/dr = 0we get,

Squaring both sides and solving we get,

since,h = R + √(R^{2}– r^{2})Now calculating the second derivative we get

Thus r=(2R√2)/3 is point of maxima

So,h = 4R/3

Below is the implementation of the above approach:

## C++

`// C++ Program to find the biggest cone ` `// that can be inscribed within a sphere ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to find the radius of the cone ` `float` `coner(` `float` `R) ` `{ ` ` ` ` ` `// radius cannot be negative ` ` ` `if` `(R < 0) ` ` ` `return` `-1; ` ` ` ` ` `// radius of the cone ` ` ` `float` `r = (2 * ` `sqrt` `(2) * R) / 3; ` ` ` `return` `r; ` `} ` ` ` `// Function to find the height of the cone ` `float` `coneh(` `float` `R) ` `{ ` ` ` ` ` `// side cannot be negative ` ` ` `if` `(R < 0) ` ` ` `return` `-1; ` ` ` ` ` `// height of the cone ` ` ` `float` `h = (4 * R) / 3; ` ` ` `return` `h; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `float` `R = 10; ` ` ` ` ` `cout << ` `"r = "` `<< coner(R) << ` `", "` ` ` `<< ` `"h = "` `<< coneh(R) << endl; ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java Program to find the biggest cone ` `// that can be inscribed within a sphere ` `import` `java.util.*; ` `import` `java.lang.*; ` ` ` `class` `GFG ` `{ ` `// Function to find the radius ` `// of the cone ` `static` `float` `coner(` `float` `R) ` `{ ` ` ` `// radius cannot be negative ` ` ` `if` `(R < ` `0` `) ` ` ` `return` `-` `1` `; ` ` ` ` ` `// radius of the cone ` ` ` `float` `r = (` `float` `)(` `2` `* ` ` ` `Math.sqrt(` `2` `) * R) / ` `3` `; ` ` ` `return` `r; ` `} ` ` ` `// Function to find the ` `// height of the cone ` `static` `float` `coneh(` `float` `R) ` `{ ` ` ` ` ` `// side cannot be negative ` ` ` `if` `(R < ` `0` `) ` ` ` `return` `-` `1` `; ` ` ` ` ` `// height of the cone ` ` ` `float` `h = (` `4` `* R) / ` `3` `; ` ` ` `return` `h; ` `} ` ` ` `// Driver code ` `public` `static` `void` `main(String args[]) ` `{ ` ` ` `float` `R = ` `10` `; ` ` ` ` ` `System.out.println(` `"r = "` `+ coner(R) + ` ` ` `", "` `+ ` `"h = "` `+ coneh(R)); ` `} ` `} ` ` ` `// This code is contributed ` `// by Akanksha Rai ` |

*chevron_right*

*filter_none*

## Python3

`# Python 3 Program to find the biggest cone ` `# that can be inscribed within a sphere ` `import` `math ` ` ` `# Function to find the radius ` `# of the cone ` `def` `coner(R): ` ` ` ` ` `# radius cannot be negative ` ` ` `if` `(R < ` `0` `): ` ` ` `return` `-` `1` `; ` ` ` ` ` `# radius of the cone ` ` ` `r ` `=` `(` `2` `*` `math.sqrt(` `2` `) ` `*` `R) ` `/` `3` ` ` `return` `float` `(r) ` ` ` `# Function to find the height ` `# of the cone ` `def` `coneh(R): ` ` ` ` ` `# side cannot be negative ` ` ` `if` `(R < ` `0` `): ` ` ` `return` `-` `1` `; ` ` ` ` ` `# height of the cone ` ` ` `h ` `=` `(` `4` `*` `R) ` `/` `3` ` ` `return` `float` `(h) ` ` ` `# Driver code ` `R ` `=` `10` `print` `(` `"r = "` `, coner(R) , ` ` ` `", "` `, ` `"h = "` `, coneh(R)) ` ` ` `# This code is contributed ` `# by 29AjayKumar ` |

*chevron_right*

*filter_none*

## C#

`// C# Program to find the biggest cone ` `// that can be inscribed within a sphere ` `using` `System; ` ` ` `class` `GFG ` `{ ` `// Function to find the radius ` `// of the cone ` `static` `float` `coner(` `float` `R) ` `{ ` ` ` `// radius cannot be negative ` ` ` `if` `(R < 0) ` ` ` `return` `-1; ` ` ` ` ` `// radius of the cone ` ` ` `float` `r = (` `float` `)(2 * ` ` ` `Math.Sqrt(2) * R) / 3; ` ` ` `return` `r; ` `} ` ` ` `// Function to find the ` `// height of the cone ` `static` `float` `coneh(` `float` `R) ` `{ ` ` ` ` ` `// side cannot be negative ` ` ` `if` `(R < 0) ` ` ` `return` `-1; ` ` ` ` ` `// height of the cone ` ` ` `float` `h = (4 * R) / 3; ` ` ` `return` `h; ` `} ` ` ` `// Driver code ` `public` `static` `void` `Main() ` `{ ` ` ` `float` `R = 10; ` ` ` ` ` `Console.WriteLine(` `"r = "` `+ coner(R) + ` ` ` `", "` `+ ` `"h = "` `+ coneh(R)); ` `} ` `} ` ` ` `// This code is contributed ` `// by Akanksha Rai ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP Program to find the biggest ` `// cone that can be inscribed ` `// within a sphere ` ` ` `// Function to find the radius ` `// of the cone ` `function` `coner(` `$R` `) ` `{ ` ` ` ` ` `// radius cannot be negative ` ` ` `if` `(` `$R` `< 0) ` ` ` `return` `-1; ` ` ` ` ` `// radius of the cone ` ` ` `$r` `= (2 * sqrt(2) * ` `$R` `) / 3; ` ` ` `return` `$r` `; ` `} ` ` ` `// Function to find the height ` `// of the cone ` `function` `coneh(` `$R` `) ` `{ ` ` ` ` ` `// side cannot be negative ` ` ` `if` `(` `$R` `< 0) ` ` ` `return` `-1; ` ` ` ` ` `// height of the cone ` ` ` `$h` `= (4 * ` `$R` `) / 3; ` ` ` `return` `$h` `; ` `} ` ` ` `// Driver code ` `$R` `= 10; ` ` ` `echo` `(` `"r = "` `); ` `echo` `coner(` `$R` `); ` `echo` `(` `", "` `); ` `echo` `(` `"h = "` `); ` `echo` `(coneh(` `$R` `)); ` ` ` `// This code is contributed ` `// by Shivi_Aggarwal ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

r = 9.42809, h = 13.3333

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.