# Check if two given circles touch or intersect each other

There are two circle A and B with their centers 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.
```

```Distance between centers 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. ` `?> `

/div>

Output :

```Circle touch to each other.
```