# Count elements in an Array that can be represented as difference of two perfect squares

• Last Updated : 09 Aug, 2021

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:
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:
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 ` `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);``    ``count_num(arr, n);``    ``return` `0;``}`

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

## 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):``    ``# Initialize 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))`

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

## Javascript

 ``

Output:

`2`

My Personal Notes arrow_drop_up