 GeeksforGeeks App
Open App Browser
Continue

# Forming triangles using points on a square

Given a square with N points on each side of the square and none of these points co-incide with the corners of the square. The task is to calculate the total number of triangles that can be formed using these 4 * N points (N points on each side of the square) as vertices of the triangle.
Examples:

Input: N = 1
Output:
There is one point on each side. So we can make three rectangles by leaving one point and picking other three points out of the four.
Input: N = 2
Output: 56

Approach: The number of ways of choosing 3 points among 4 * N points is (4 * N)C3. However, some of them do not form a triangle. This happens when all the three chosen points are on the same side of the square. The count of these triplets is NC3 for each of the side i.e. 4 * NC3 in total. Therefore, the required count of triangles will be ((4 * N)C3) – (4 * NC3).
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function to return the count``// of possible triangles``int` `noOfTriangles(``int` `n)``{``    ``int` `y = 4 * n;``    ``return` `((y * (y - 2) * (y - 1))``            ``- (4 * n * (n - 2) * (n - 1)))``           ``/ 6;``}` `// Driver code``int` `main()``{``    ``int` `n = 1;` `    ``cout << noOfTriangles(n);` `    ``return` `0;``}`

## Java

 `// Java implementation of the above approach``class` `GFG``{``        ` `    ``// Function to return the count``    ``// of possible triangles``    ``static` `int` `noOfTriangles(``int` `n)``    ``{``        ``int` `y = ``4` `* n;``        ``return` `((y * (y - ``2``) * (y - ``1``)) -``                ``(``4` `* n * (n - ``2``) * (n - ``1``))) / ``6``;``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `n = ``1``;``    ` `        ``System.out.println(noOfTriangles(n));``    ``}``}` `// This code is contributed by AnkitRai01`

## Python3

 `# Python3 implementation of the approach`` ` `# Function to return the count``# of possible triangles``def` `noOfTriangles(n):``    ``y ``=` `4` `*` `n``    ``return` `((y ``*` `(y ``-` `2``) ``*` `(y ``-` `1``)) ``-``            ``(``4` `*` `n ``*` `(n ``-` `2``) ``*` `(n ``-` `1``)))``/``/` `6` `# Driver code``n ``=` `1` `print``(noOfTriangles(n))` `# This code is contributed by Mohit Kumar`

## C#

 `// C# implementation of the above approach``using` `System;``    ` `class` `GFG``{``        ` `    ``// Function to return the count``    ``// of possible triangles``    ``static` `int` `noOfTriangles(``int` `n)``    ``{``        ``int` `y = 4 * n;``        ``return` `((y * (y - 2) * (y - 1)) -``                ``(4 * n * (n - 2) * (n - 1))) / 6;``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main (String[] args)``    ``{``        ``int` `n = 1;``    ` `        ``Console.WriteLine(noOfTriangles(n));``    ``}``}` `// This code is contributed by 29AjayKumar`

## Javascript

 ``

Output:

`4`

Time Complexity: O(1)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up