Given a number N, the task is to check if this number can be represented as the difference of two perfect squares or not.
Examples:
Input: N = 3
Output: Yes
Explanation:
22 – 11 = 3Input: N = 10
Output: No
Approach: The idea is that all the numbers can be represented as the difference of two squares except the numbers which yield the remainder of 2 when divided by 4.
Let’s visualize this by taking a few examples:
N = 4 => 42 - 02 N = 6 => Can't be expressed as 6 % 4 = 2 N = 8 => 32 - 12 N = 10 => Can't be expressed as 10 % 4 = 2 N = 11 => 62 - 52 N = 12 => 42 - 22 and so on...
Therefore, the idea is to simply check the remainder for 2 when the given number is divided by 4.
Below is the implementation of the above approach:
C++
// C++ program to check whether a number // can be represented by the difference // of two squares #include <bits/stdc++.h> using namespace std; // Function to check whether a number // can be represented by the difference // of two squares bool difSquare( int n) { // Checking if n % 4 = 2 or not if (n % 4 != 2) { return true ; } return false ; } // Driver code int main() { int n = 45; if (difSquare(n)) { cout << "Yes\n" ; } else { cout << "No\n" ; } return 0; } |
Java
// Java program to check whether a number // can be represented by the difference // of two squares import java.util.*; class GFG{ // Function to check whether a number // can be represented by the difference // of two squares static boolean difSquare( int n) { // Checking if n % 4 = 2 or not if (n % 4 != 2 ) { return true ; } return false ; } // Driver code public static void main(String[] args) { int n = 45 ; if (difSquare(n)) { System.out.print( "Yes\n" ); } else { System.out.print( "No\n" ); } } } // This code is contributed by shivanisinghss2110 |
Python3
# Python3 program to check whether a number # can be represented by the difference # of two squares # Function to check whether a number # can be represented by the difference # of two squares def difSquare(n): # Checking if n % 4 = 2 or not if (n % 4 ! = 2 ): return True return False # Driver code if __name__ = = '__main__' : n = 45 if (difSquare(n)): print ( "Yes" ) else : print ( "No" ) # This code is contributed by mohit kumar 29 |
C#
// C# program to check whether a number // can be represented by the difference // of two squares using System; class GFG{ // Function to check whether a number // can be represented by the difference // of two squares static bool difSquare( int n) { // Checking if n % 4 = 2 or not if (n % 4 != 2) { return true ; } return false ; } // Driver code public static void Main() { int n = 45; if (difSquare(n)) { Console.Write( "Yes\n" ); } else { Console.Write( "No\n" ); } } } // This code is contributed by Nidhi_biet |
Yes
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.