Related Articles

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

• Last Updated : 24 Mar, 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):``    ``# 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))`

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

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.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up