Given N planes. The task is to find the maximum number of line intersections that can be formed through the intersections of N planes.

**Examples:**

Input:N = 3

Output:3

Input:N = 5

Output:10

**Approach:**

Let there be N planes such that no 3 planes intersect in a single line of intersection and no 2 planes are parallel to each other. Adding ‘N+1’th plane to this space should be possible while retaining the above two conditions. In that case, this plane would intersect each of the N planes in ‘N’ distinct lines.

Thus, the ‘N+1’th plane could atmost add ‘N’ new lines to the total count of lines of intersection. Similarly, the Nth plane could add at most “N-1′ distinct lines of intersection. It is easy therefore to see that, for ‘N’ planes, the maximum number of lines of intersection could be:

(N-1) + (N-2) +...+ 1 = N*(N-1)/2

Below is the implementation of the above approach:

## C++

`// C++ implementation of the above pproach ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to count maximum number of ` `// intersections possible ` `int` `countIntersections(` `int` `n) ` `{ ` ` ` `return` `n * (n - 1) / 2; ` `} ` ` ` `// Driver Code ` `int` `main() ` `{ ` ` ` `int` `n = 3; ` ` ` ` ` `cout << countIntersections(n); ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation of the approach ` `class` `GFG ` `{ ` ` ` ` ` `// Function to count maximum number of ` ` ` `// intersections possible ` ` ` `static` `int` `countIntersections(` `int` `n) ` ` ` `{ ` ` ` `return` `n * (n - ` `1` `) / ` `2` `; ` ` ` `} ` ` ` ` ` `// Driver Code ` ` ` `public` `static` `void` `main (String[] args) ` ` ` `{ ` ` ` `int` `n = ` `3` `; ` ` ` ` ` `System.out.println(countIntersections(n)); ` ` ` `} ` `} ` ` ` `// This code is contributed by AnkitRai01 ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 implementation of the above pproach ` ` ` `# Function to count maximum number of ` `# intersections possible ` `def` `countIntersections(n): ` ` ` `return` `n ` `*` `(n ` `-` `1` `) ` `/` `/` `2` ` ` `# Driver Code ` `n ` `=` `3` ` ` `print` `(countIntersections(n)) ` ` ` `# This code is contributed by mohit kumar ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation of the approach ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` ` ` `// Function to count maximum number of ` ` ` `// intersections possible ` ` ` `static` `int` `countIntersections(` `int` `n) ` ` ` `{ ` ` ` `return` `n * (n - 1) / 2; ` ` ` `} ` ` ` ` ` `// Driver Code ` ` ` `public` `static` `void` `Main (String[] args) ` ` ` `{ ` ` ` `int` `n = 3; ` ` ` ` ` `Console.WriteLine(countIntersections(n)); ` ` ` `} ` `} ` ` ` `// This code is contributed by 29AjayKumar ` |

*chevron_right*

*filter_none*

**Output:**

3

**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.