# Average of Cubes of first N natural numbers

• Difficulty Level : Basic
• Last Updated : 21 Jun, 2022

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

Input: N = 2
Output: 4.5
Explanation:
For integer N = 2,
We have ( 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 cubesdouble 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 Codeint 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 cubesdouble 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 Codeint main(){    // Given Number    int n = 3;     // Function Call    cout << findAverageOfCube(n);}

## Java

 // Java program for the above approachimport java.util.*;import java.io.*;class GFG{ // Function to find average of cubesstatic 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 Codepublic 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 cubesdef 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 Codeif __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 approachusing System;class GFG{ // Function to find average of cubesstatic 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 Codepublic static void Main(){    // Given Number    int n = 3;     // Function Call    Console.Write(findAverageOfCube(n));}} // This code is contributed by Nidhi_biet

## Javascript

 

Output:

12.000000

Time complexity: O(N)

Space complexity: O(1)

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 an average of cubesdouble findAverageofCube(double n){    // Apply the formula n(n+1)^2/4    int ans = (n * (n + 1) * (n + 1)) / 4;    return ans;}  // Driver Codeint main(){    // Given Number    int n = 3;      // Function Call    printf("%f",findAverageofCube(n));      return 0;}

## C++

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

## Java

 // Java program for the above approachclass GFG{ // function to find an average of cubesstatic double findAverageofCube(double n){    // Apply the formula n(n+1)^2/4    int ans = (int)((n * (n + 1) * (n + 1)) / 4);    return ans;} // Driver Codepublic 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 cubesdef findAverageOfCube (n):     # Apply the formula n*(n+1)^2/4    ans = (n * (n + 1) * (n + 1)) / 4    return ans # Driver codeif __name__ == '__main__':     # Given number    n = 3     # Function call    print(findAverageOfCube(n)) # This code is contributed by himanshu77

## C#

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

## Javascript

 

Output:

12.000000

Time Complexity: O(1)

Space complexity: O(1)

My Personal Notes arrow_drop_up