# Largest right circular cone that can be inscribed within a sphere

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 = 10
Output : r = 9.42809, h = 13.3333

Input : R = 25
Output : r = 23.5702, h = 33.3333

```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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)
Now,

To maximize the volume of the cone(V):
V = (πr2h)/3

From the diagram,
V = (πr2R)/3 + πr2√(R2> – r2)/3

Taking derivative of V with respect to r we get,
dV/dr = 2πr(√(R2 – r2) + R)/3 – πr2√(R2 – r2)/3

Now, setting dV/dr = 0 we get,
r = 2√2R/3

since, h = R + √(R2 – r2)

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 ` `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; ` `} `

## 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 `

## 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 [tabby title="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 `

## PHP

 ` `

Output:

```r = 9.42809, h = 13.3333
```

My Personal Notes arrow_drop_up