# Check whether a number can be represented as difference of two squares

• Difficulty Level : Hard
• Last Updated : 20 Sep, 2022

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 = 3

Input: 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 => 22 - 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 ``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`

## Javascript

 ``

Output:

`Yes`

Time complexity: O(1) because constant operations have been done
Auxiliary space: O(1)

My Personal Notes arrow_drop_up