Given a number n, we need to find the maximum number of times n circles intersect.

Examples:

Input : n = 2 Output : 2 Input : n = 3 Output : 6

## Description and Derivation

As we can see in above diagram, for each pair of circles, there can be maximum two intersectuib points. Therefore if we have n circles then there can be ^{n}C_{2} pairs of circles in which each pair will have two intersections. So by this we can conclude that by looking at all possible pairs of circles the mathematical formula can be made for the maximum number of intersection by n circles is given by **2 * ^{n}C_{2}**.

2 * ^{n}C_{2} = 2 * n * (n – 1)/2 = **n * (n-1)**

## C++

`// CPP program to find maximum umber of ` `// intersections of n circles ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Returns maximum number of intersections ` `int` `intersection(` `int` `n) ` `{ ` ` ` `return` `n * (n - 1); ` `} ` ` ` `int` `main() ` `{ ` ` ` `cout << intersection(3) << endl; ` ` ` `return` `0; ` `} ` `// This code is contributed by ` `// Manish Kumar Rai. ` |

*chevron_right*

*filter_none*

## Java

`// Java program to find maximum umber of ` `// intersections of n circles ` `import` `java.io.*; ` ` ` `public` `class` `GFG { ` ` ` ` ` `// for the calculation of 2*(nC2) ` ` ` `static` `int` `intersection(` `int` `n) ` ` ` `{ ` ` ` `return` `n * (n - ` `1` `); ` ` ` `} ` ` ` ` ` `public` `static` `void` `main(String[] args) ` `throws` `IOException ` ` ` `{ ` ` ` `System.out.println(intersection(` `3` `)); ` ` ` `} ` `} ` `// This code is contributed by ` `// Manish Kumar Rai ` |

*chevron_right*

*filter_none*

## Python3

`# python program to find maximum umber of ` `# intersections of n circles ` `# Returns maximum number of intersections ` `def` `intersection(n): ` ` ` ` ` `return` `n ` `*` `(n ` `-` `1` `); ` ` ` `# Drive code ` `print` `(intersection(` `3` `)) ` ` ` `# This code is contributed by Sam007 ` |

*chevron_right*

*filter_none*

## C#

`// C# program to find maximum umber of ` `// intersections of n circles ` `using` `System; ` `class` `GFG { ` ` ` ` ` `// for the calculation of 2*(nC2) ` ` ` `static` `int` `intersection(` `int` `n) ` ` ` `{ ` ` ` `return` `n * (n - 1); ` ` ` `} ` ` ` `// Driver Code ` `public` `static` `void` `Main() ` `{ ` ` ` `Console.WriteLine(intersection(3)); ` `} ` ` ` `} ` ` ` `// This code is contributed by Sam007 ` |

*chevron_right*

*filter_none*

## php

`<?php ` `// php program to find maximum umber of ` `// intersections of n circles ` ` ` `// Returns maximum number of intersections ` `function` `intersection(` `$n` `) ` `{ ` ` ` `return` `$n` `* (` `$n` `- 1); ` `} ` ` ` `// Drive code ` ` ` `echo` `intersection(3); ` ` ` ` ` `// This code is contributed by Sam007 ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

6

## Recommended Posts:

- Maximum points of intersection n lines
- Maximum possible intersection by moving centers of line segments
- Count maximum points on same line
- Angular Sweep (Maximum points that can be enclosed in a circle of given radius)
- Steps required to visit M points in order on a circular ring of N points
- Minimum number of points to be removed to get remaining points on one side of axis
- Count of obtuse angles in a circle with 'k' equidistant points between 2 given points
- Prime points (Points that split a number into two primes)
- Ways to choose three points with distance between the most distant points <= L
- Path in a Rectangle with Circles
- Number of Integral Points between Two Points
- Check if two given circles touch or intersect each other
- Program to calculate the area between two Concentric Circles
- Length of rope tied around three equal circles touching each other
- Check whether given circle resides in boundary maintained by two other circles