You are given n straight lines. You have to find maximum number of point of intersection with these n lines.

**Examples:**

Input : n = 4 Output : 6 Input : n = 2 Output :1

**Approach :**

As we have n number of line, and we have to find maximum point of intersection using these n line. So this can be done using combination. This problem can be think as number of ways to select any two line among n line. As every line intersect with other that is selected.

So, total number of points = nC2

Below is the implementation of above approach:

## C++

`// CPP program to find maximum intersecting ` `// points ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` `#define ll long int ` ` ` ` ` `// nC2 = (n)*(n-1)/2; ` `ll countMaxIntersect(ll n) ` `{ ` ` ` `return` `(n) * (n - 1) / 2; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `// n is number of line ` ` ` `ll n = 8; ` ` ` `cout << countMaxIntersect(n) << endl; ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java program to find maximum intersecting ` `// points ` ` ` `public` `class` `GFG { ` ` ` ` ` `// nC2 = (n)*(n-1)/2; ` ` ` `static` `long` `countMaxIntersect(` `long` `n) ` ` ` `{ ` ` ` `return` `(n) * (n - ` `1` `) / ` `2` `; ` ` ` `} ` ` ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `main(String args[]) ` ` ` `{ ` ` ` `// n is number of line ` ` ` `long` `n = ` `8` `; ` ` ` `System.out.println(countMaxIntersect(n)); ` ` ` ` ` ` ` `} ` ` ` `// This code is contributed by ANKITRAI1 ` `} ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 program to find maximum ` `# intersecting points ` ` ` `#nC2 = (n)*(n-1)/2 ` `def` `countMaxIntersect(n): ` ` ` `return` `int` `(n` `*` `(n ` `-` `1` `)` `/` `2` `) ` ` ` `#Driver code ` `if` `__name__` `=` `=` `'__main__'` `: ` ` ` `# n is number of line ` ` ` `n ` `=` `8` ` ` `print` `(countMaxIntersect(n)) ` ` ` `# this code is contributed by ` `# Shashank_Sharma ` |

*chevron_right*

*filter_none*

## C#

`// C# program to find maximum intersecting ` `// points ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` ` ` `// nC2 = (n)*(n-1)/2; ` ` ` `public` `static` `long` `countMaxIntersect(` `long` `n) ` ` ` `{ ` ` ` `return` `(n) * (n - 1) / 2; ` ` ` `} ` ` ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `Main() ` ` ` `{ ` ` ` `// n is number of line ` ` ` `long` `n = 8; ` ` ` `Console.WriteLine(countMaxIntersect(n)); ` ` ` `} ` `} ` `// This code is contributed by Soumik ` |

*chevron_right*

*filter_none*

## PHP

`<?PHP ` `// PHP program to find maximum intersecting ` `// points ` ` ` `// nC2 = (n)*(n-1)/2; ` `function` `countMaxIntersect(` `$n` `) ` `{ ` ` ` `return` `(` `$n` `) * (` `$n` `- 1) / 2; ` `} ` ` ` `// Driver code ` ` ` `// n is number of line ` `$n` `= 8; ` `echo` `countMaxIntersect(` `$n` `) . ` `"\n"` `; ` ` ` `// This code is contributed by ChitraNayal ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

28

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.

## Recommended Posts:

- Number of pairs of lines having integer intersection points
- Maximum points of intersection n circles
- Maximum points of intersections possible among X circles and Y straight lines
- Program for Point of Intersection of Two Lines
- Find intersection point of lines inside a section
- Minimum lines to cover all points
- Non-crossing lines to connect points in a circle
- Find whether only two parallel lines contain all coordinates points or not
- Number of triangles formed from a set of points on three lines
- Number of lines from given N points not parallel to X or Y axis
- Count of different straight lines with total n points with m collinear
- Find the maximum value of Y for a given X from given set of lines
- Maximum possible intersection by moving centers of line segments
- Maximum number of line intersections formed through intersection of N planes
- Maximum distinct lines passing through a single point
- Maximum number of region in which N non-parallel lines can divide a plane
- Count maximum points on same line
- Maximum number of segments that can contain the given points
- Find the maximum possible distance from origin using given points
- Angular Sweep (Maximum points that can be enclosed in a circle of given radius)

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.