# Check if two given circles touch or intersect each other

• Difficulty Level : Easy
• Last Updated : 05 May, 2021

There are two circle A and B with their centres C1(x1, y1) and C2(x2, y2) and radius R1 and R2. Task is to check both circles A and B touch each other or not.
Examples :

```Input : C1 = (3,  4)
C2 = (14, 18)
R1 = 5, R2 = 8
Output : Circles do not touch each other.

Input : C1 = (2,  3)
C2 = (15, 28)
R1 = 12, R2 = 10
Output : Circles intersect with each other.

Input : C1 = (-10,  8)
C2 = (14, -24)
R1 = 30, R2 = 10
Input : -10 8
14 -24
30 10
Output : Circle touch each other.```

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.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

```Distance between centres C1 and C2 is calculated as
C1C2 = sqrt((x1 - x2)2 + (y1 - y2)2).
There are three condition arises.
1. If C1C2 == R1 + R2
Circle A and B are touch to each other.
2. If C1C2 > R1 + R2
Circle A and B are not touch to each other.
3. If C1C2 < R1 + R2
Circle intersects each other.```

## C++

 `// C++ program to check if two``// circles touch each other or not.``#include ``using` `namespace` `std;` `int` `circle(``int` `x1, ``int` `y1, ``int` `x2,``           ``int` `y2, ``int` `r1, ``int` `r2)``{``    ``int` `distSq = (x1 - x2) * (x1 - x2) +``                 ``(y1 - y2) * (y1 - y2);``    ``int` `radSumSq = (r1 + r2) * (r1 + r2);``    ``if` `(distSq == radSumSq)``        ``return` `1;``    ``else` `if` `(distSq > radSumSq)``        ``return` `-1;``    ``else``        ``return` `0;``}` `// Driver code``int` `main()``{``    ``int` `x1 = -10, y1 = 8;``    ``int` `x2 = 14, y2 = -24;``    ``int` `r1 = 30, r2 = 10;``    ``int` `t = circle(x1, y1, x2,``                   ``y2, r1, r2);``    ``if` `(t == 1)``        ``cout << ``"Circle touch to"``             ``<< ``" each other."``;``    ``else` `if` `(t < 0)``        ``cout << ``"Circle not touch"``             ``<< ``" to each other."``;``    ``else``        ``cout << ``"Circle intersect"``             ``<< ``" to each other."``;``    ``return` `0;``}`

## Java

 `// Java program to check if two``// circles touch each other or not.``import` `java.io.*;` `class` `GFG``{``    ``static` `int` `circle(``int` `x1, ``int` `y1, ``int` `x2,``                      ``int` `y2, ``int` `r1, ``int` `r2)``    ``{``        ``int` `distSq = (x1 - x2) * (x1 - x2) +``                     ``(y1 - y2) * (y1 - y2);``        ``int` `radSumSq = (r1 + r2) * (r1 + r2);``        ``if` `(distSq == radSumSq)``            ``return` `1``;``        ``else` `if` `(distSq > radSumSq)``            ``return` `-``1``;``        ``else``            ``return` `0``;``    ``}` `    ``// Driver code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `x1 = -``10``, y1 = ``8``;``        ``int` `x2 = ``14``, y2 = -``24``;``        ``int` `r1 = ``30``, r2 = ``10``;``        ``int` `t = circle(x1, y1, x2,``                       ``y2, r1, r2);``        ``if` `(t == ``1``)``            ``System.out.println ( ``"Circle touch to"` `+``                                 ``" each other."``);``        ``else` `if` `(t < ``0``)``            ``System.out.println ( ``"Circle not touch"` `+``                                 ``" to each other."``);``        ``else``            ``System.out.println ( ``"Circle intersect"` `+``                                 ``" to each other."``);``            ` `    ``}``}` `// This article is contributed by vt_m.`

## Python3

 `# Python3 program to``# check if two circles touch``# each other or not.` `def` `circle(x1, y1, x2, y2, r1, r2):`` ` `    ``distSq ``=` `(x1 ``-` `x2) ``*` `(x1 ``-` `x2) ``+` `(y1 ``-` `y2) ``*` `(y1 ``-` `y2);``    ``radSumSq ``=` `(r1 ``+` `r2) ``*` `(r1 ``+` `r2);``    ``if` `(distSq ``=``=` `radSumSq):``        ``return` `1``    ``elif` `(distSq > radSumSq):``        ``return` `-``1``    ``else``:``        ``return` `0`` `  `# Driver code``x1 ``=` `-``10``y1 ``=` `8``x2 ``=` `14``y2 ``=` `-``24``r1 ``=` `30``r2 ``=` `10` `t ``=` `circle(x1, y1, x2, y2, r1, r2)``if` `(t ``=``=` `1``):``    ``print``(``"Circle touch to each other."``)``elif` `(t < ``0``):``    ``print``(``"Circle not touch to each other."``)``else``:``    ``print``(``"Circle intersect to each other."``)` `# This code is contributed by``# Smitha Dinesh Semwal`

## C#

 `// C# program to check if two``// circles touch each other or not.``using` `System;` `class` `GFG``{``    ``static` `int` `circle(``int` `x1, ``int` `y1, ``int` `x2,``                      ``int` `y2, ``int` `r1, ``int` `r2)``    ``{``        ``int` `distSq = (x1 - x2) * (x1 - x2) +``                     ``(y1 - y2) * (y1 - y2);``        ``int` `radSumSq = (r1 + r2) * (r1 + r2);``        ``if` `(distSq == radSumSq)``            ``return` `1;``        ``else` `if` `(distSq > radSumSq)``            ``return` `-1;``        ``else``            ``return` `0;``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ``int` `x1 = -10, y1 = 8;``        ``int` `x2 = 14, y2 = -24;``        ``int` `r1 = 30, r2 = 10;``        ``int` `t = circle(x1, y1, x2,``                       ``y2, r1, r2);``        ``if` `(t == 1)``            ``Console.WriteLine ( ``"Circle touch"` `+``                             ``" to each other."``);``        ``else` `if` `(t < 0)``            ``Console.WriteLine( ``"Circle not touch"` `+``                                ``" to each other."``);``        ``else``            ``Console.WriteLine ( ``"Circle intersect"` `+``                                 ``" to each other."``);``            ` `    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ` ``\$radSumSq``)``        ``return` `-1;``    ``else``        ``return` `0;``}` `// Driver code``\$x1` `= -10; ``\$y1` `= 8;``\$x2` `= 14; ``\$y2` `= -24;``\$r1` `= 30; ``\$r2` `= 10;``\$t` `= circle(``\$x1``, ``\$y1``, ``\$x2``,``            ``\$y2``, ``\$r1``, ``\$r2``);``if` `(``\$t` `== 1)``    ``echo` `"Circle touch to each other."``;``else` `if` `(``\$t` `< 0)``    ``echo` `"Circle not touch to each other."``;``else``    ``echo` `"Circle intersect to each other."``;` `// This code is contributed by vt_m.``?>`

## Javascript

 ``

Output :

`Circle touch to each other.`

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