Given **N**‘, the number of non-parallel lines. The task is to find the maximum number of regions in which these lines can divide a plane.

**Examples:**

Input :N = 3

Output :7

Input :N = 2

Output :4

**Approach :** The above image shows the maximum number of regions a line can divide a plane. One line can divide a plane into two regions, two non-parallel lines can divide a plane into 4 regions and three non-parallel lines can divide into 7 regions and so on. When the n^{th} line is added to a cluster of (n-1) lines then the maximum number of extra regions formed is equal to n.

Now solve the recursion as follows:

L(2) – L(1) = 2 … (i)

L(3) – L(2) = 3 … (ii)

L(4) – L(3) = 4 … (iii)

. . .

. . .

L(n) – L(n-1) = n ; … (n)

Adding all the above equation we get,L(n) – L(1) = 2 + 3 + 4 + 5 + 6 + 7 + …… + n ;

L(n) = L(1) + 2 + 3 + 4 + 5 + 6 + 7 + …… + n ;

L(n) = 2 + 2 + 3 + 4 + 5 + 6 + 7 + …… + n ;

L(n) = 1 + 2 + 3 + 4 + 5 + 6 + 7 + …… + n + 1 ;

L(n) = n ( n + 1 ) / 2 + 1 ;

The number of region in which N non-parallel lines can divide a plane is equal to **N*( N + 1 )/2 + 1**.

Below is the implementation of the above approach:

## C++

`// C++ program to implement the above problem ` ` ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to find the maximum ` `// number of regions on a plane ` `void` `maxRegions(` `int` `n) ` `{ ` ` ` `int` `num; ` ` ` `num = n * (n + 1) / 2 + 1; ` ` ` ` ` `// print the maximum number of regions ` ` ` `cout << num; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `n = 10; ` ` ` ` ` `maxRegions(n); ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java program to implement the above problem ` `class` `GFG ` `{ ` ` ` ` ` `// Function to find the maximum ` ` ` `// number of regions on a plane ` ` ` `static` `void` `maxRegions(` `int` `n) ` ` ` `{ ` ` ` `int` `num; ` ` ` `num = n * (n + ` `1` `) / ` `2` `+ ` `1` `; ` ` ` ` ` `// print the maximum number of regions ` ` ` `System.out.println(num);; ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `main(String[] args) ` ` ` `{ ` ` ` `int` `n = ` `10` `; ` ` ` `maxRegions(n); ` ` ` `} ` `} ` ` ` `// This code is contributed by 29AjayKumar ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 program to implement ` `# the above problem ` ` ` `# Function to find the maximum ` `# number of regions on a plane ` `def` `maxRegions(n): ` ` ` `num ` `=` `n ` `*` `(n ` `+` `1` `) ` `/` `/` `2` `+` `1` ` ` ` ` `# print the maximum number ` ` ` `# of regions ` ` ` `print` `(num) ` ` ` `# Driver code ` `n ` `=` `10` ` ` `maxRegions(n) ` ` ` `# This code is contributed ` `# by Mohit Kumar ` |

*chevron_right*

*filter_none*

## C#

`// C# program to implement the above problem ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` ` ` `// Function to find the maximum ` ` ` `// number of regions on a plane ` ` ` `static` `void` `maxRegions(` `int` `n) ` ` ` `{ ` ` ` `int` `num; ` ` ` `num = n * (n + 1) / 2 + 1; ` ` ` ` ` `// print the maximum number of regions ` ` ` `Console.WriteLine(num); ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `Main(String[] args) ` ` ` `{ ` ` ` `int` `n = 10; ` ` ` `maxRegions(n); ` ` ` `} ` `} ` ` ` `// This code is contributed by 29AjayKumar ` |

*chevron_right*

*filter_none*

**Output:**

56

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

## Recommended Posts:

- Number of Triangles that can be formed given a set of lines in Euclidean Plane
- Check if a line at 45 degree can divide the plane into two equal weight parts
- Count of intersections of M line segments with N vertical lines in XY plane
- Find the equation of plane which passes through two points and parallel to a given axis
- Program to find the number of region in Planar Graph
- Maximum distance between two points in coordinate plane using Rotating Caliper's Method
- Find the area of the shaded region formed by the intersection of four semicircles in a square
- Python - Find the maximum number of triangles with given points on three lines
- Number of jump required of given length to reach a point of form (d, 0) from origin in 2D plane
- Number of triangles in a plane if no more than two points are collinear
- Count digits in given number N which divide N
- Maximum distinct lines passing through a single point
- Maximum points of intersection n lines
- Maximum points of intersections possible among X circles and Y straight lines
- Find the maximum value of Y for a given X from given set of lines
- Count of parallelograms in a plane
- Find mirror image of a point in 2-D plane
- Program to determine the quadrant of the cartesian plane
- Shortest distance between a Line and a Point in a 3-D plane
- Program to determine the octant of the axial plane

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.