Check if N can be represented as sum of squares of two consecutive integers

Given an integer N, the task is to check whether N can be represented as a sum of squares of two consecutive integers or not.
Examples:
Input: N = 5
Output: Yes
Explanation:
The integer 5 = 12 + 22 where 1 and 2 are consecutive numbers.Input: 13
Output: Yes
Explanation:
13 = 22 + 32
Approach: This equation can be represented as:
=>
=>
=>
Finally, check the value of computed using this formula is an integer, which means that N can be represented as the sum of squares 2 consecutive integers
Below is the implementation of the above approach:
C++
// C++ implementation to check that// a number is sum of squares of 2// consecutive numbers or not#include <bits/stdc++.h>using namespace std;// Function to check that the// a number is sum of squares of 2// consecutive numbers or notbool isSumSquare(int N){ float n = (2 + sqrt(8 * N - 4)) / 2; // Condition to check if the // a number is sum of squares of 2 // consecutive numbers or not return (n - (int)n) == 0;}// Driver Codeint main(){ int i = 13; // Function call if (isSumSquare(i)) { cout << "Yes"; } else { cout << "No"; } return 0;} |
Java
// Java implementation to check that // a number is sum of squares of 2 // consecutive numbers or not import java.lang.Math;class GFG{ // Function to check that the // a number is sum of squares of 2 // consecutive numbers or not public static boolean isSumSquare(int N) { double n = (2 + Math.sqrt(8 * N - 4)) / 2; // Condition to check if the // a number is sum of squares of 2 // consecutive numbers or not return(n - (int)n) == 0; } // Driver code public static void main(String[] args){ int i = 13; // Function call if (isSumSquare(i)) { System.out.println("Yes"); } else { System.out.println("No"); } }}// This code is contributed by divyeshrabadiya07 |
Python3
# Python3 implementation to check that # a number is sum of squares of 2 # consecutive numbers or not import math# Function to check that the a# number is sum of squares of 2 # consecutive numbers or not def isSumSquare(N): n = (2 + math.sqrt(8 * N - 4)) / 2 # Condition to check if the a # number is sum of squares of # 2 consecutive numbers or not return (n - int(n)) == 0# Driver code if __name__=='__main__': i = 13 # Function call if isSumSquare(i): print('Yes') else : print('No')# This code is contributed by rutvik_56 |
C#
// C# implementation to check that // a number is sum of squares of 2 // consecutive numbers or not using System;class GFG{ // Function to check that the // a number is sum of squares of 2 // consecutive numbers or not public static bool isSumSquare(int N) { double n = (2 + Math.Sqrt(8 * N - 4)) / 2; // Condition to check if the // a number is sum of squares of 2 // consecutive numbers or not return(n - (int)n) == 0; } // Driver code public static void Main(String[] args){ int i = 13; // Function call if (isSumSquare(i)) { Console.WriteLine("Yes"); } else { Console.WriteLine("No"); } }}// This code is contributed by sapnasingh4991 |
Javascript
<script>// Javascript implementation to check that // a number is sum of squares of 2 // consecutive numbers or not // Function to check that the// a number is sum of squares of 2// consecutive numbers or notfunction isSumSquare(N) { var n = (2 + Math.sqrt(8 * N - 4)) / 2; // Condition to check if the // a number is sum of squares of 2 // consecutive numbers or not return (n - parseInt( n)) == 0;}// Driver codevar i = 13;// Function callif (isSumSquare(i)) { document.write("Yes");} else{ document.write("No");}// This code is contributed by todaysgaurav</script> |
Yes
Note: In order to print the integers, we can easily solve the above equation to get the roots.
Time Complexity: O(logN) because it is using inbuilt sqrt function
Auxiliary Space: O(1)
Approach 2: Iterative Method:
Here’s another approach to check whether a number is the sum of squares of two consecutive numbers or not:
- Iterate through all possible pairs of consecutive integers (x, x+1) such that x is less than the square root of N.
- For each pair (x, x+1), compute their sum of squares as x^2 + (x+1)^2.
- If the sum of squares is equal to N, return true. Otherwise, continue iterating through the pairs of consecutive integers.
- If no pair of consecutive integers satisfies the condition, return false.
Here’s the implementation of this approach in C++:
C++
#include <bits/stdc++.h>using namespace std;bool isSumSquare(int N) { for (int x = 0; x * x < N; x++) { int sum = x * x + (x + 1) * (x + 1); if (sum == N) { return true; } } return false;}int main() { int N = 13; if (isSumSquare(N)) { cout << "Yes"; } else { cout << "No"; } return 0;} |
Java
public class Main { // Function to check if a number can be expressed as the //sum of squares of two consecutive numbers static boolean isSumSquare(int N) { for (int x = 0; x * x < N; x++) { int sum = x * x + (x + 1) * (x + 1); if (sum == N) { return true; } } return false; }// Driver code public static void main(String[] args) { int N = 13; if (isSumSquare(N)) { System.out.println("Yes"); } else { System.out.println("No"); } }} |
Python3
def isSumSquare(N): for x in range(0, N): sum = x * x + (x + 1) * (x + 1) if sum == N: return True elif sum > N: return False return FalseN = 13if isSumSquare(N): print("Yes")else: print("No") |
C#
using System;public class Program { public static bool IsSumSquare(int N) { for (int x = 0; x * x < N; x++) { int sum = x * x + (x + 1) * (x + 1); if (sum == N) { return true; } } return false; } public static void Main() { int N = 13; if (IsSumSquare(N)) { Console.WriteLine("Yes"); } else { Console.WriteLine("No"); } }}// This code is contributed by user_dtewbxkn77n |
Javascript
//Javascript Codefunction isSumSquare(N) { for (let x = 0; x * x < N; x++) { let sum = x * x + (x + 1) * (x + 1); if (sum === N) { return true; } } return false;}let N = 13;if (isSumSquare(N)) { console.log("Yes");} else { console.log("No");} |
Output:
Yes
Time Complexity: O(N)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!


