# 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: 4
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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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 `

Output:

```4
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

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.