Open In App

Largest cube that can be inscribed within the sphere

Last Updated : 27 Jul, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Given here is a sphere of radius r, the task is to find the side of the largest cube that can fit inside in it.
Examples: 
 

Input: r = 8
Output: 9.2376

Input: r = 5
Output: 5.7735

 

 

Approach:
 

Side of the cube = a 
Radius of the sphere = r 
From the diagonal, it is clear that, diagonal of the cube = diameter of the sphere, 
a?3 = 2r or, a = 2r/?3

Below is the implementation:
 

C++




// C++ Program to find the biggest cube
// inscribed within a sphere
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the side of the cube
float largestCube(float r)
{
 
    // radius cannot be negative
    if (r < 0)
        return -1;
 
    // side of the cube
    float a = (2 * r) / sqrt(3);
    return a;
}
 
// Driver code
int main()
{
    float r = 5;
    cout << largestCube(r) << endl;
 
    return 0;
}


Java




// Java Program to find the biggest cube
// inscribed within a sphere
import java.util.*;
class Solution{
// Function to find the side of the cube
static float largestCube(float r)
{
   
    // radius cannot be negative
    if (r < 0)
        return -1;
   
    // side of the cube
    float a = (2 * r) / (float)Math.sqrt(3);
    return a;
}
   
// Driver code
public static void main(String args[])
{
    float r = 5;
    System.out.println( largestCube(r));
   
}
 
}
//contributed by Arnab Kundu


Python3




# Python 3 Program to find the biggest
# cube inscribed within a sphere
from math import sqrt
 
# Function to find the side of the cube
def largestCube(r):
     
    # radius cannot be negative
    if (r < 0):
        return -1
 
    # side of the cube
    a = (2 * r) / sqrt(3)
    return a
 
# Driver code
if __name__ == '__main__':
    r = 5
    print("{0:.6}".format(largestCube(r)))
 
# This code is contributed
# by SURENDRA_GANGWAR


C#




// C# Program to find the biggest cube
// inscribed within a sphere
using System;
class Solution{
// Function to find the side of the cube
static float largestCube(float r)
{
 
    // radius cannot be negative
    if (r < 0)
        return -1;
 
    // side of the cube
    float a = (2 * r) / (float)Math.Sqrt(3);
    return a;
}
 
// Driver code
static void Main()
{
    float r = 5;
    Console.WriteLine( largestCube(r));
 
}
 
}
//This code is contributed by mits


PHP




<?php
// PHP Program to find the biggest
// cube inscribed within a sphere
 
// Function to find the side
// of the cube
function largestCube($r)
{
 
    // radius cannot be negative
    if ($r < 0)
        return -1;
 
    // side of the cube
    $a = (float)((2 * $r) / sqrt(3));
    return $a;
}
 
// Driver code
$r = 5;
echo largestCube($r);
 
// This code is contributed by akt_mit
?>


Javascript




<script>
// javascript Program to find the biggest cube
// inscribed within a sphere
 
// Function to find the side of the cube
function largestCube(r)
{
   
    // radius cannot be negative
    if (r < 0)
        return -1;
   
    // side of the cube
    var a = (2 * r) / Math.sqrt(3);
    return a;
}
   
// Driver code 
var r = 5;
document.write( largestCube(r).toFixed(5));
 
// This code is contributed by 29AjayKumar
</script>


Output: 

5.7735

 

Time Complexity: O(1)

Auxiliary Space: O(1)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads