# Check whether a point lies inside a sphere or not

Given co-ordinates of the center of a sphere (cx, cy, cz) and its radius r. Our task is to check whether a point (x, y, z) lies inside, outside or on this sphere.

Examples:

```Input : Centre(0, 0, 0) Radius 3
Point(1, 1, 1)
Output :Point is inside the sphere

Input :Centre(0, 0, 0) Radius 3
Point(2, 1, 2)
Output :Point lies on the sphere

Input :Centre(0, 0, 0) Radius 3
Point(10, 10, 10)
Output :Point is outside the sphere
```

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

Approach:
Whether a point lies inside a sphere or not, depends upon its distance from the centre.
A point (x, y, z) is inside the sphere with center (cx, cy, cz) and radius r if

`( x-cx ) ^2 + (y-cy) ^2 + (z-cz) ^ 2 < r^2 `

A point (x, y, z) lies on the sphere with center (cx, cy, cz) and radius r if

`( x-cx ) ^2 + (y-cy) ^2 + (z-cz) ^ 2 = r^2 `

A point (x, y, z) is outside the sphere with center (cx, cy, cz) and radius r if

`( x-cx ) ^2 + (y-cy) ^2 + (z-cz) ^ 2 > r^2 `

## C++

 `// CPP code to illustrate above approach ` `#include ` `using` `namespace` `std; ` `// function to calculate the distance between centre and the point ` `int` `check(``int` `cx, ``int` `cy, ``int` `cz, ``int` `x, ``int` `y, ``int` `z) ` `{ ` `    ``int` `x1 = ``pow``((x - cx), 2); ` `    ``int` `y1 = ``pow``((y - cy), 2); ` `    ``int` `z1 = ``pow``((z - cz), 2); ` ` `  `    ``// distance between the centre  ` `    ``// and given point ` `    ``return` `(x1 + y1 + z1);  ` `} ` ` `  `// Driver program to test above function ` `int` `main() ` `{ ` `    ``// coordinates of centre ` `    ``int` `cx = 1, cy = 2, cz = 3;  ` ` `  `    ``int` `r = 5; ``// radius of the sphere ` `    ``int` `x = 4, y = 5, z = 2; ``// coordinates of point ` ` `  `    ``int` `ans = check(cx, cy, cz, x, y, z); ` ` `  `    ``// distance btw centre and point is less  ` `    ``// than radius ` `    ``if` `(ans < (r * r)) ` `        ``cout << ``"Point is inside the sphere"``;  ` ` `  `    ``// distance btw centre and point is  ` `    ``// equal to radius ` `    ``else` `if` `(ans == (r * r)) ` `        ``cout << ``"Point lies on the sphere"``;  ` ` `  `    ``// distance btw center and point is ` `    ``// greater than radius ` `    ``else` `        ``cout << ``"Point is outside the sphere"``; ` `    ``return` `0; ` `}`

## Java

 `// Java code to illustrate above approach ` `import` `java.io.*; ` `import` `java.util.*; ` `import` `java.lang.*; ` ` `  `class` `GfG { ` `     `  `    ``// function to calculate the distance  ` `    ``// between centre and the point ` `    ``public` `static` `int` `check(``int` `cx, ``int` `cy, ` `                 ``int` `cz, ``int` `x, ``int` `y, ``int` `z) ` `    ``{ ` `        ``int` `x1 = (``int``)Math.pow((x - cx), ``2``); ` `        ``int` `y1 = (``int``)Math.pow((y - cy), ``2``); ` `        ``int` `z1 = (``int``)Math.pow((z - cz), ``2``); ` `     `  `        ``// distance between the centre  ` `        ``// and given point ` `        ``return` `(x1 + y1 + z1);  ` `    ``} ` `     `  `    ``// Driver program to test above function ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``// coordinates of centre ` `        ``int` `cx = ``1``, cy = ``2``, cz = ``3``;  ` `     `  `        ``int` `r = ``5``; ``// radius of the sphere ` `         `  `        ``// coordinates of point ` `        ``int` `x = ``4``, y = ``5``, z = ``2``;  ` `     `  `        ``int` `ans = check(cx, cy, cz, x, y, z); ` `     `  `        ``// distance btw centre and point is less  ` `        ``// than radius ` `        ``if` `(ans < (r * r)) ` `            ``System.out.println(``"Point is inside"` `                       ``+ ``" the sphere"``);  ` `     `  `        ``// distance btw centre and point is  ` `        ``// equal to radius ` `        ``else` `if` `(ans == (r * r)) ` `            ``System.out.println(``"Point lies on"` `                        ``+ ``" the sphere"``);  ` `     `  `        ``// distance btw center and point is ` `        ``// greater than radius ` `        ``else` `            ``System.out.println(``"Point is outside"` `                             ``+ ``" the sphere"``); ` `    ``} ` `} ` ` `  `// This code is contributed by Sagar Shukla. `

## Python

 `# Python3 code to illustrate above approach ` ` `  `import` `math ` `# function to calculate distance btw center and given point ` `def` `check(cx, cy, cz, x, y, z, ): ` `     `  `    ``x1 ``=` `math.``pow``((x``-``cx), ``2``) ` `    ``y1 ``=` `math.``pow``((y``-``cy), ``2``) ` `    ``z1 ``=` `math.``pow``((z``-``cz), ``2``) ` `    ``return` `(x1 ``+` `y1 ``+` `z1) ``# distance between the centre and given point ` `     `  `# driver code     ` `cx ``=` `1` `cy ``=` `2` `# coordinates of centre ` `cz ``=` `3` ` `  `r ``=` `5` `# radius of sphere ` ` `  `x ``=` `4` `y ``=` `5` `# coordinates of the given point ` `z ``=` `2` `# function call to calculate distance btw centre and given point ` `ans ``=` `check(cx, cy, cz, x, y, z); ` ` `  `# distance btw centre and point is less than radius ` `if` `ans<(r``*``*``2``): ` `    ``print``(``"Point is inside the sphere"``)  ` ` `  `# distance btw centre and point is equal to radius ` `elif` `ans ``=``=``(r``*``*``2``): ` `    ``print``(``"Point lies on the sphere"``)  ` ` `  `# distance btw centre and point is greater than radius ` `else``: ` `    ``print``(``"Point is outside the sphere"``)  `

## C#

 `// C# code to illustrate ` `// above approach ` `using` `System; ` ` `  `class` `GFG  ` `{ ` `     `  `    ``// function to calculate  ` `    ``// the distance between  ` `    ``// centre and the point ` `    ``public` `static` `int` `check(``int` `cx, ``int` `cy, ` `                            ``int` `cz, ``int` `x,  ` `                            ``int` `y, ``int` `z) ` `    ``{ ` `        ``int` `x1 = (``int``)Math.Pow((x - cx), 2); ` `        ``int` `y1 = (``int``)Math.Pow((y - cy), 2); ` `        ``int` `z1 = (``int``)Math.Pow((z - cz), 2); ` `     `  `        ``// distance between the ` `        ``// centre and given point ` `        ``return` `(x1 + y1 + z1);  ` `    ``} ` `     `  `    ``// Driver Code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// coordinates of centre ` `        ``int` `cx = 1, cy = 2, cz = 3;  ` `     `  `        ``int` `r = 5; ``// radius of the sphere ` `         `  `        ``// coordinates of point ` `        ``int` `x = 4, y = 5, z = 2;  ` `     `  `        ``int` `ans = check(cx, cy, cz, ` `                        ``x, y, z); ` `     `  `        ``// distance btw centre ` `        ``// and point is less  ` `        ``// than radius ` `        ``if` `(ans < (r * r)) ` `            ``Console.WriteLine(``"Point is inside"` `+ ` `                                  ``" the sphere"``);  ` `     `  `        ``// distance btw centre ` `        ``// and point is  ` `        ``// equal to radius ` `        ``else` `if` `(ans == (r * r)) ` `            ``Console.WriteLine(``"Point lies on"` `+  ` `                                ``" the sphere"``);  ` `     `  `        ``// distance btw center  ` `        ``// and point is greater ` `        ``// than radius ` `        ``else` `            ``Console.WriteLine(``"Point is outside"` `+  ` `                                   ``" the sphere"``); ` `    ``} ` `} ` ` `  `// This code is contributed by anuj_67. `

## PHP

 ` `

Output:

`Point is inside the sphere`

Time Complexity:O(1)

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.

My Personal Notes arrow_drop_up

Dream it Do it

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : vt_m, Vishal_Khoda

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.