Number of triangles that can be formed

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



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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


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.