Square pyramid numbers (sum of squares)
A square pyramid number refers to the sum of the squares of natural numbers. Natural numbers include all numbers from 1 to infinity. For example, the first 4 square pyramid numbers are 1, 5, 14, and 30.
To understand better, consider the following fact: If we take the square pyramid of numbers at the beginning and stack the number balls in descending order, they will form a pyramid.
Problem Statement
Given a number Sum. If Sum is the sum of the squares of the first n natural numbers, return n, otherwise return false.
Example 1
is translated as:Example 1
Input = 30 Output = 4
Explanation = 30 is the sum of the squares of the first 4 natural numbers.
1*1 + 2*2 + 3*3 +4*4 = 30.
Therefore, the output should be 4.
Example 2
Input = 54 Output = -1
Explanation = There is no sum of squares of any n natural numbers equal to 54. Therefore, the output should be -1.
Solution to problem statement
There are two solutions to this problem.
Method 1: Violent solution
The brute force cracking method starts from n = 1. Create a variable 'total' that adds the square of the next natural number to the previous value of total. Returns n if total is equal to Sum, otherwise returns false if total is greater than Sum.
pseudocode
start n =1 While (total < sum ): Total += n*n n=n+1 if(total == sum) : Return n Else: Return false end
Example
Below is a C program to check whether a given number is the sum of squares of natural numbers.
#include <iostream> using namespace std; // This function returns n if the sum of squares of first // n natural numbers is equal to the given sum // Else it returns -1 int square_pyramidal_number(int sum) { // initialize total int total = 0; // Return -1 if Sum is <= 0 if(sum <= 0){ return -1; } // Adding squares of the numbers starting from 1 int n = 0; while ( total < sum){ n++; total += n * n; } // If total becomes equal to sum return n if (total == sum) return n; return -1; } int main(){ int S = 30; int n = square_pyramidal_number(S); cout<< "Number of Square Pyramidal Numbers whose sum is 30: "<< endl; (n) ? cout << n : cout << "-1"; return 0; }
Output
Number of Square Pyramidal Numbers whose sum is 30: 4
Time complexity - O(sum), where sum is the given input.
Space complexity - O(1): no extra space used.
Method 2 using Newton-Raphson method
Another method is the Newton-Raphson method. Newton-Raphson method Used to find the roots of a given function f(x) and an initial guess of the roots.
sum of squares of first n natural numbers = n * (n + 1) * (2*n + 1) / 6, n * (n + 1) * (2*n + 1) / 6 = sum or k * (k + 1) * (2*k + 1) – 6*sum = 0
So n is the root of this cubic equation and can be calculated using the Newton-Raphson method which involves starting from an initial guess value x0 and using the following formula to find the next value x i.e. from the previous value xn Get xn 1.
$$\mathrm{x_{1}=x_{0}-\frac{f(x_{0})}{f^{'}(x_{0})}}$$
pseudocode
Start calculate func(x) and derivativeFunction(x) for given initial x Compute h: h = func(x) / derivFunc(x) While h is greater than allowed error ε h = func(x) / derivFunc(x) x = x – h If (x is an integer): return x Else: return -1; end
Example
The following is a C program for checking whether a given number is the sum of the squares of natural numbers.
#include<bits/stdc++.h> #define EPSILON 0.001 using namespace std; // According to Newton Raphson Method The function is // k * (k + 1) * (2*k + 1) – 6*sum or 2*k*k*k + 3*k*k + k - 6*sum double func(double k, int sum){ return 2*k*k*k + 3*k*k + k - 6*sum; } // Derivative of the above function is 6*k*k + 6*k + 1 double derivativeFunction(double k){ return 6*k*k + 6*k + 1; } // Function to check if double is an integer or not bool isInteger(double N){ int X = N; double temp2 = N - X; if (temp2*10 >=1 ) { return false; } return true; } // Function that finds the root of k * (k + 1) * (2*k + 1) – 6*sum int newtonRaphson(double k, int sum){ double h = func(k, sum) / derivativeFunction(k); while (abs(h) >= EPSILON){ h = func(k, sum)/derivativeFunction(k); // k(i+1) = k(i) - f(k) / f'(k) k = k - h; } if (isInteger(k)) { return (int)k; } else { return -1; } } // Driver program int main(){ double x0 = 1; // Initial values assumed int sum = 91; int n = newtonRaphson(x0,sum); cout<< "Number of Square Pyramidal Numbers whose sum is 91: "<< endl; (n) ? cout << n : cout << "-1"; return 0; }
Output
Number of Square Pyramidal Numbers whose sum is 91: 6
Time Complexity - O((log n) F(n)) where F(n) is the cost of calculating f(x)/f'(x), with n-digit precision.
Space complexity - O(1): no extra space used.
in conclusion
This article solves the problem of finding the square pyramid number of a given sum. We introduce two methods: one is a brute force method and the other is an efficient method. Both methods provide C programs.
The above is the detailed content of Square pyramid numbers (sum of squares). For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Can you enter squares and cubes in Excel? Here are several quick input methods for you to choose from. 1. Input method input Nowadays, input methods are very smart. When you type "square" or "cube", [²] and [m³] will automatically appear in the options. The input method demonstrated here is a certain dog, and the specific one is not specified. Chinese input method. You can test your own input method. 2. Set the superscript input. First enter [m3] or [m2] in the cell, then select the number, right-click the mouse and select cell format settings, then set 3 and 2 as [superscript], and then confirm. It will be displayed as cube or square; 3. Alt + small keyboard input. Hold down Alt in the input cell and don’t release it, then press the number on the small keyboard.

The average of the squares of natural numbers is calculated by adding all the squares of n natural numbers and then dividing by that number. The first two natural numbers in the example are 2.5, 12+22=5=>5/2=2.5. There are two methods of calculation in programming - Using loops Using formulas Calculating the average of squares of natural numbers using loops This logic works by finding the squares of all natural numbers. Find the square of each by looping from 1 to n and add to the sum variable. Then divide that sum by n. Program to calculate the sum of squares of natural numbers - sample code real-time demonstration #include<stdio.h>intmain(){ intn=2;

PrimeFactor−Innumbertheory,theprimefactorsofapositiveintegeraretheprimenumbersthatdividethatintegerexactly.Theprocessoffindingthesenumbersiscalledintegerfactorization,orprimefactorization.Example−Primefactorsof288are:288=2x2x2x2x2

When we use Excel software to create tables, sometimes we need to use the square symbol. So how do we enter the square symbol? Now I will share with you how to enter the square symbol in Excel, which is what many friends want to know recently. How to enter the square symbol in Excel. I hope it can help you! We want to enter the square in an Excel file, first open the Excel file. I will use square meters as an example to demonstrate. First, enter m2 in the Excel table. Then use the mouse to select the number 2 in m2, then right-click and you will see a [Format Cells] function. At this time, select the [Format Cells] button. At this time, the [Format Cells] dialog box will pop up in the Excel file, and then find

We all know numbers that are not the square of any number, such as 2, 3, 5, 7, 8, etc. There are N non-square numbers, and it is impossible to know every number. So, in this article, we will explain everything about squareless or non-square numbers and ways to find the Nth non-square number in C++. Nth non-square number If a number is the square of an integer, then the number is called a perfect square. Some examples of perfect square numbers are -1issquareof14issquareof29issquareof316issquareof425issquareof5 If a number is not the square of any integer, then the number is called non-square. For example, the first 15 non-square numbers are -2,3,5,6,

In 2025, global digital virtual currency trading platforms are fiercely competitive. This article authoritatively releases the top ten digital virtual currency trading platforms in the world in 2025 based on indicators such as transaction volume, security, and user experience. OKX ranks first with its strong technical strength and global operation strategy, and Binance follows closely with high liquidity and low fees. Platforms such as Gate.io, Coinbase, and Kraken are at the forefront with their respective advantages. The list covers trading platforms such as Huobi, KuCoin, Bitfinex, Crypto.com and Gemini, each with its own characteristics, but investment should be cautious. To choose a platform, you need to consider factors such as security, liquidity, fees, user experience, currency selection and regulatory compliance, and invest rationally

If anyone wants to get a solid foundation in Java programming language. Then, it is necessary to understand how the loop works. Furthermore, solving Pyramid Pattern problems is the best way to enhance your knowledge of Java basics as it includes extensive use of for and while loops. This article aims to provide some Java programs to print pyramid patterns with the help of different types of loops available in Java. Java Program to Create Pyramid Pattern We will print the following pyramid patterns through Java program - Inverted Star Pyramid Star Pyramid Number Pyramid Let's discuss one by one. Mode 1: The inverted star pyramid method declares and initializes an integer "n" with the specified number of rows. Next, define the initial count of the space as 0 and the initial count of the star as "n+

Ranking of the top ten virtual currency trading platforms (latest in 2025): Binance: Global leader, high liquidity, and regulation has attracted attention. OKX: Large user base, supports multiple currencies, and provides leveraged trading. Gate.io: A senior exchange, with a variety of fiat currency payment methods, providing a variety of trading pairs and investment products. Bitget: Derivatives Exchange, high liquidity, low fees. Huobi: An old exchange that supports a variety of currencies and trading pairs. Coinbase: A well-known American exchange, strictly regulated. Phemex and so on.
