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 = 1Output: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 = 2Output:56

**Approach:** The number of ways of choosing **3** points among **4 * N** points is ** ^{(4 * N)}C_{3}**. 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

**for each of the side i.e.**

^{N}C_{3}**4 ***in total. Therefore, the required count of triangles will be

^{N}C_{3}**(**.

^{(4 * N)}C_{3}) – (4 *^{N}C_{3})Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach` `#include <bits/stdc++.h>` `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

`<script>` `// javascript implementation of the approach` `// Function to return the count` `// of possible triangles` `function` `noOfTriangles(n)` `{` ` ` `var` `y = 4 * n;` ` ` `return` `((y * (y - 2) * (y - 1))` ` ` `- (4 * n * (n - 2) * (n - 1)))` ` ` `/ 6;` `}` `// Driver code` `var` `n = 1;` `document.write(noOfTriangles(n));` `</script>` |

**Output:**

4

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