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

filter_none

edit
close

play_arrow

link
brightness_4
code

// C program for the above approach
#include <stdio.h>
  
// 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;
}

chevron_right


C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for the above approach
#include <bits/stdc++.h>
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);
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:



12.000000

Time complexity: O(N)

Efficient Approach:

We know that, 
Sum of cubes of first N Natural Numbers = 

(\frac{N*(N+1)}{2})^{2}

Average is given by: 
=> 

\frac{\text{Sum of cubes of first N natural numbers}}{N}

=> 

\frac{(\frac{N*(N+1)}{2})^{2}}{N}



=> 

\frac{N^{2}*(N+1)^{2}}{4*N}

=> 

\frac{N*(N+1)^{2}}{4}

 

Therefore, the average of the cube sum of first N natural numbers is given by 

\frac{N*(N+1)^{2}}{4}

Below is the implementation of above approach:
 

C

filter_none

edit
close

play_arrow

link
brightness_4
code

// C program for the above approach
#include <stdio.h>
  
// 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;
}

chevron_right


C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for the above approach
#include <bits/stdc++.h>
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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

12.000000

Time Complexity: O(1)

competitive-programming-img




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.