Nicomachus's Theorem (original) (raw)

Last Updated : 11 Jul, 2025

Nicomachus's Theorem states that sum of cubes of first n natural numbers is equal to squares of natural number sum.
1^{3}+2^{3}+3^{3}+\cdots +n^{3}=\left(1+2+3+\cdots +n\right)^{2}
In other words
1^{3}+2^{3}+3^{3}+\cdots +n^{3}=\left(n*(n+1)/2)^{2}
Or we can say that the sum is equal to square of n-th triangular number.
Mathematical Induction based proof can be found here.

C++ `

// CPP program to verify Nicomachus's Theorem #include <bits/stdc++.h> using namespace std;

void NicomachusTheorem_sum(int n) { // Compute sum of cubes int sum = 0; for (int k=1; k<=n; k++) sum += kkk;

// Check if sum is equal to // given formula. int triNo = n*(n+1)/2; if (sum == triNo * triNo) cout << "Yes"; else cout << "No"; }

// driver function int main() { int n = 5; NicomachuTheorem_sum(n); return 0; }

Java

// Java program to verify Nicomachus's Theorem import java.io.*;

class GFG {

static void NicomachuTheorem_sum(int n)
{
    
    // Compute sum of cubes
    int sum = 0;
    
    for (int k = 1; k <= n; k++)
        sum += k * k * k;
        
    // Check if sum is equal to
    // given formula.
    int triNo = n * (n + 1) / 2;
    
    if (sum == triNo * triNo)
        System.out.println("Yes");
    else
        System.out.println("No");
}

// driver function
public static void main (String[] args)
{
    int n = 5;
    NicomachuTheorem_sum(n);
}

}

// This code is contributed by anuj_67.

Python3

Python3 program to verify

Nicomachus's Theorem

def NicomachuTheorem_sum(n):

# Compute sum of cubes
sum = 0;
for k in range(1, n + 1):
    sum += k * k * k;
    
# Check if sum is equal to
# given formula.
triNo = n * (n + 1) / 2;
if (sum == triNo * triNo):
    print("Yes");
else:
    print("No");

Driver Code

n = 5; NicomachuTheorem_sum(n);

This code is contributed

by mits

C#

// C# program to verify // Nicomachus's Theorem using System;

class GFG {

static void NicomachuTheorem_sum(int n)
{
     
    // Compute sum of cubes
    int sum = 0;
     
    for (int k = 1; k <= n; k++)
        sum += k * k * k;
         
    // Check if sum is equal to
    // given formula.
    int triNo = n * (n + 1) / 2;
     
    if (sum == triNo * triNo)
        Console.WriteLine("Yes");
    else
        Console.WriteLine("No");
}
 
// Driver Code
public static void Main ()
{
    int n = 5;
    NicomachuTheorem_sum(n);
}

}

// This code is contributed by anuj_67

PHP

k<=k <= k<=n; $k++) sum+=sum += sum+=k * k∗k * kk; // Check if sum is equal to // given formula. triNo=triNo = triNo=n * ($n + 1) / 2; if ($sum == triNo∗triNo * triNotriNo) echo "Yes"; else echo "No"; } // Driver Code $n = 5; NicomachuTheorem_sum($n); // This code is contributed by anuj_67. ?>

JavaScript

`

Time complexity : O(n)
Auxiliary Space : O(1)