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:

2^{2}– 1^{1}= 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 => 4^{2}- 0^{2}N = 6 => Can't be expressed as 6 % 4 = 2 N = 8 => 3^{2}- 1^{2}N = 10 => Can't be expressed as 10 % 4 = 2 N = 11 => 6^{2}- 5^{2}N = 12 => 4^{2}- 2^{2}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; ` `} ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

**Output:**

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.