Related Articles
Maximum number of line intersections formed through intersection of N planes
• Last Updated : 01 Apr, 2021

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 using namespace std; // Function to count maximum number of// intersections possibleint countIntersections(int n){    return n * (n - 1) / 2;} // Driver Codeint main(){    int n = 3;     cout << countIntersections(n);     return 0;}

## Java

 // Java implementation of the approachclass 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

## Python3

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

## C#

 // C# implementation of the approachusing 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

## Javascript


Output:
3

Time Complexity: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up