给定一个数组arr[] ,任务是计算数组中可以用两个完全平方数之差的形式表示的元素的数量。
例子:
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.
方法:问题中的关键观察是数字,它可以表示为两个数字的平方之差,除以 4 时永远不会产生 2 作为余数。
例如:
N = 4 =>
N = 6 => Can’t be represented as
N = 8 =>
N = 10 => Can’t be represented as
因此,遍历数组并计算数组中此类元素的数量。
下面是上述方法的实现:
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[0]);
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
输出:
2
如果您想与行业专家一起参加直播课程,请参阅Geeks Classes Live