Given an array **arr[]**, the task is to count the number of elements in the array that can be represented as in the form of the difference of two perfect square numbers.

**Examples:**

Input:arr[] = {1, 2, 3}

Output:2

Explanation:

There are two such elements that can be represented as

difference of square of two numbers –

Element 1 –

Element 3 –

Therefore, Count of such elements is 2.

Input:arr[] = {2, 5, 6}

Output:1

Explanation:

There is only one such element. That is –

Element 5 –

Therefore, Count of such elements is 1.

**Approach:** The key observation in the problem is numbers which can be represented as the difference of the squares of two numbers never yield 2 as the remainder when divided by 4.

**For Example:**

N = 4 =>

N = 6 => Can’t be represented as

N = 8 =>

N = 10 => Can’t be represented as

Therefore, iterate over the array and count the number of such elements in the array.

Below is the implementation of the above approach:

## C++

`// C++ implementation to count the ` `// number of elements which can be ` `// represented as the difference ` `// of the two square ` ` ` `#include <bits/stdc++.h> ` ` ` `using` `namespace` `std; ` ` ` `// Function to count of such elements ` `// in the array which can be represented ` `// as the difference of the two squares ` `int` `count_num(` `int` `arr[], ` `int` `n) ` `{ ` ` ` `// Initialize count ` ` ` `int` `count = 0; ` ` ` ` ` `// Loop to iterate ` ` ` `// over the array ` ` ` `for` `(` `int` `i = 0; i < n; i++) ` ` ` ` ` `// Condition to check if the ` ` ` `// number can be represented ` ` ` `// as the difference of squares ` ` ` `if` `((arr[i] % 4) != 2) ` ` ` `count++; ` ` ` ` ` `cout << count; ` ` ` `return` `0; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `arr[] = { 1, 2, 3 }; ` ` ` `int` `n = ` `sizeof` `(arr) / ` `sizeof` `(arr[0]); ` ` ` `count_num(arr, n); ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation to count the ` `// number of elements which can be ` `// represented as the difference ` `// of the two square ` `class` `GFG{ ` ` ` `// Function to count of such elements ` `// in the array which can be represented ` `// as the difference of the two squares ` `static` `void` `count_num(` `int` `[]arr, ` `int` `n) ` `{ ` ` ` ` ` `// Initialize count ` ` ` `int` `count = ` `0` `; ` ` ` ` ` `// Loop to iterate ` ` ` `// over the array ` ` ` `for` `(` `int` `i = ` `0` `; i < n; i++) ` ` ` `{ ` ` ` ` ` `// Condition to check if the ` ` ` `// number can be represented ` ` ` `// as the difference of squares ` ` ` `if` `((arr[i] % ` `4` `) != ` `2` `) ` ` ` `count++; ` ` ` `} ` ` ` `System.out.println(count); ` `} ` ` ` `// Driver code ` `public` `static` `void` `main (String[] args) ` `{ ` ` ` `int` `arr[] = { ` `1` `, ` `2` `, ` `3` `}; ` ` ` `int` `n = arr.length; ` ` ` ` ` `count_num(arr, n); ` `} ` `} ` ` ` `// This code is contributed by AnkitRai01 ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 implementation to count the ` `# number of elements in the array ` `# which can be represented as difference ` `# of the two elements ` ` ` `# Function to return the ` `# Count of required count ` `# of such elements ` `def` `count_num(arr, n): ` ` ` `# Intialize count ` ` ` `count ` `=` `0` ` ` ` ` `# Loop to iterate over the ` ` ` `# array of elements ` ` ` `for` `i ` `in` `arr: ` ` ` ` ` `# Condition to check if the ` ` ` `# number can be represented ` ` ` `# as the difference ` ` ` `# of two squares ` ` ` `if` `((i ` `%` `4` `) !` `=` `2` `): ` ` ` `count ` `=` `count ` `+` `1` ` ` ` ` `return` `count ` ` ` `# Driver Code ` `if` `__name__ ` `=` `=` `"__main__"` `: ` ` ` `arr ` `=` `[` `1` `, ` `2` `, ` `3` `] ` ` ` `n ` `=` `len` `(arr) ` ` ` ` ` `# Function Call ` ` ` `print` `(count_num(arr, n)) ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation to count the ` `// number of elements which can be ` `// represented as the difference ` `// of the two square ` `using` `System; ` `class` `GFG{ ` ` ` `// Function to count of such elements ` `// in the array which can be represented ` `// as the difference of the two squares ` `static` `void` `count_num(` `int` `[]arr, ` `int` `n) ` `{ ` ` ` ` ` `// Initialize count ` ` ` `int` `count = 0; ` ` ` ` ` `// Loop to iterate ` ` ` `// over the array ` ` ` `for` `(` `int` `i = 0; i < n; i++) ` ` ` `{ ` ` ` ` ` `// Condition to check if the ` ` ` `// number can be represented ` ` ` `// as the difference of squares ` ` ` `if` `((arr[i] % 4) != 2) ` ` ` `count++; ` ` ` `} ` ` ` `Console.WriteLine(count); ` `} ` ` ` `// Driver code ` `public` `static` `void` `Main(` `string` `[] args) ` `{ ` ` ` `int` `[]arr = { 1, 2, 3 }; ` ` ` `int` `n = arr.Length; ` ` ` ` ` `count_num(arr, n); ` `} ` `} ` ` ` `// This code is contributed by shivanisinghss2110 ` |

*chevron_right*

*filter_none*

**Output:**

2

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.