# Average of Cubes of first N natural numbers

Given a positive integer N, the task is to find the average of cubes of first N natural numbers.
Examples:

Input: N = 2
Output: 4.5
Explanation:
For integer N = 2,
We hvae ( 13 + 23 ) = 1 + 8 = 9
average = 9 / 2 that is 4.5
Input: N = 3
Output: 12
Explanation:
For N = 3,
We have ( 13 + 23 + 23 + 23 + 33 + 23 ) = 27 + 8 + 1 = 36
average = 36 / 3 that is 12

Naive Approach: The naive approach is to find the sum of cubes of first N natural numbers and divide it by N.
Below is the implementation of above approach:

## C

 // C program for the above approach  #include     // Function to find average of cubes  double findAverageOfCube(int n)  {      // Store sum of cubes of      // numbers in the sum      double sum = 0;         // Calculate sum of cubes      int i;      for (i = 1; i <= n; i++) {          sum += i * i * i;      }         // Return average      return sum / n;  }     // Driver Code  int main()  {      // Given number      int n = 3;         // Function Call      printf("%lf", findAverageOfCube(n));      return 0;  }

## C++

 // C++ program for the above approach  #include  using namespace std;     // Function to find average of cubes  double findAverageOfCube(int n)  {      // Storing sum of cubes      // of numbers in sum      double sum = 0;         // Calculate sum of cubes      for (int i = 1; i <= n; i++) {          sum += i * i * i;      }         // Return average      return sum / n;  }     // Driver Code  int main()  {      // Given Number      int n = 3;         // Function Call      cout << findAverageOfCube(n);  }

## Java

 // Java program for the above approach  import java.util.*;   import java.io.*;  class GFG{     // Function to find average of cubes  static double findAverageOfCube(int n)  {      // Storing sum of cubes      // of numbers in sum      double sum = 0;         // Calculate sum of cubes      for (int i = 1; i <= n; i++)       {          sum += i * i * i;      }         // Return average      return sum / n;  }     // Driver Code  public static void main(String[] args)   {      // Given Number      int n = 3;         // Function Call      System.out.print(findAverageOfCube(n));  }  }     // This code is contributed by shivanisinghss2110

## Python3

 # Python3 program for the above approach     # Function to find average of cubes  def findAverageOfCube(n):         # Storing sum of cubes      # of numbers in sum      sum = 0        # Calculate sum of cubes      for i in range(1, n + 1):          sum += i * i * i         # Return average      return round(sum / n, 6)     # Driver Code  if __name__ == '__main__':         # Given Number      n = 3        # Function Call      print(findAverageOfCube(n))     # This code is contributed by mohit kumar 29

## C#

 // C# program for the above approach  using System;  class GFG{     // Function to find average of cubes  static double findAverageOfCube(int n)  {      // Storing sum of cubes      // of numbers in sum      double sum = 0;         // Calculate sum of cubes      for (int i = 1; i <= n; i++)       {          sum += i * i * i;      }         // Return average      return sum / n;  }     // Driver Code  public static void Main()   {      // Given Number      int n = 3;         // Function Call      Console.Write(findAverageOfCube(n));  }  }     // This code is contributed by Nidhi_biet

Output:

12.000000


Time complexity: O(N)

Efficient Approach:

We know that,
Sum of cubes of first N Natural Numbers = Average is given by:
=> => => => Therefore, the average of the cube sum of first N natural numbers is given by Below is the implementation of above approach:

## C

 // C program for the above approach  #include     // Function to find average of cubes  double findAverageOfCube(int n)  {      // Store sum of cubes of      // numbers in the sum      double sum = 0;         // Calculate sum of cubes      int i;      for (i = 1; i <= n; i++) {          sum += i * i * i;      }         // Return average      return sum / n;  }     // Driver Code  int main()  {      // Given number      int n = 3;         // Function Call      printf("%lf", findAverageOfCube(n));         return 0;  }

## C++

 // C++ program for the above approach  #include  using namespace std;     // function to find an average of cubes  double findAverageofCube(double n)  {      // Apply the formula n(n+1)^2/4      int ans = (n * (n + 1) * (n + 1)) / 4;      return ans;  }     // Driver Code  int main()  {      // Given Number      int n = 3;         // Function Call      cout << findAverageofCube(n);         return 0;  }

## Java

 // Java program for the above approach  class GFG{     // function to find an average of cubes  static double findAverageofCube(double n)  {      // Apply the formula n(n+1)^2/4      int ans = (int)((n * (n + 1) * (n + 1)) / 4);      return ans;  }     // Driver Code  public static void main(String[] args)  {      // Given Number      int n = 3;         // Function Call      System.out.print(findAverageofCube(n));  }  }     // This code is contributed by shivanisinghss2110

## Python3

 # Python3 program for the above approach     # Function to find average of cubes  def findAverageOfCube (n):         # Apply the formula n*(n+1)^2/4      ans = (n * (n + 1) * (n + 1)) / 4     return ans     # Driver code  if __name__ == '__main__':         # Given number      n = 3        # Function call      print(findAverageOfCube(n))     # This code is contributed by himanshu77

## C#

 // C# program for the above approach  using System;  class GFG{     // function to find an average of cubes  static double findAverageofCube(double n)  {      // Apply the formula n(n+1)^2/4      int ans = (int)((n * (n + 1) * (n + 1)) / 4);      return ans;  }     // Driver Code  public static void Main()  {      // Given Number      int n = 3;         // Function Call      Console.Write(findAverageofCube(n));  }  }     // This code is contributed by Code_Mech

Output:

12.000000


Time Complexity: O(1) 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.

7

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.