给定一个数组arr []和一个整数x ,任务是检查该数组中所有理想平方的和是否可被x整除。如果可分割,则打印“是”,否则打印“否” 。
例子:
Input: arr[] = {2, 3, 4, 6, 9, 10}, x = 13
Output: Yes
4 and 9 are the only perfect squares from the array
sum = 4 + 9 = 13 (which is divisible by 13)
Input: arr[] = {2, 4, 25, 49, 3, 8}, x = 9
Output: No
方法:从i到n – 1循环运行,并检查arr [i]是否为理想正方形。如果arr [i]是一个完美的平方,则更新sum = sum + arr [i] 。如果最后求和%x = 0,则打印是,否则打印否。要检查一个元素是否是一个完美的正方形,请按照以下步骤操作:
Let num be an integer element
float sq = sqrt(x)
if floor(sq) = ceil(sq) then num is a perfect square else not.
下面是上述方法的实现:
C++
// C++ implementation of the approach
#include
using namespace std;
// Function that returns true if the sum of all the
// perfect squares of the given array are divisible by x
bool check(int arr[], int x, int n)
{
long long sum = 0;
for (int i = 0; i < n; i++) {
double x = sqrt(arr[i]);
// If arr[i] is a perfect square
if (floor(x) == ceil(x)) {
sum += arr[i];
}
}
if (sum % x == 0)
return true;
else
return false;
}
// Driver code
int main()
{
int arr[] = { 2, 3, 4, 9, 10 };
int n = sizeof(arr) / sizeof(arr[0]);
int x = 13;
if (check(arr, x, n)) {
cout << "Yes";
}
else {
cout << "No";
}
return 0;
}
Java
// Java implementation of the approach
public class GFG{
// Function that returns true if the the sum of all the
// perfect squares of the given array is divisible by x
static boolean check(int arr[], int x, int n)
{
long sum = 0;
for (int i = 0; i < n; i++) {
double y = Math.sqrt(arr[i]);
// If arr[i] is a perfect square
if (Math.floor(y) == Math.ceil(y)) {
sum += arr[i];
}
}
if (sum % x == 0)
return true;
else
return false;
}
// Driver Code
public static void main(String []args){
int arr[] = { 2, 3, 4, 9, 10 };
int n = arr.length ;
int x = 13;
if (check(arr, x, n)) {
System.out.println("Yes");
}
else {
System.out.println("No");
}
}
// This code is contributed by Ryuga
}
Python3
# Python3 implementation of the approach
import math
# Function that returns true if the the sum of all the
# perfect squares of the given array is divisible by x
def check (a, y):
sum = 0
for i in range(len(a)):
x = math.sqrt(a[i])
# If a[i] is a perfect square
if (math.floor(x) == math.ceil(x)):
sum = sum + a[i]
if (sum % y == 0):
return True
else:
return False
# Driver code
a = [2, 3, 4, 9, 10]
x = 13
if check(a, x) :
print("Yes")
else:
print("No")
C#
// C# implementation of the approach
using System;
public class GFG{
// Function that returns true if the the sum of all the
// perfect squares of the given array is divisible by x
static bool check(int[] arr, int x, int n)
{
long sum = 0;
for (int i = 0; i < n; i++) {
double y = Math.Sqrt(arr[i]);
// If arr[i] is a perfect square
if (Math.Floor(y) == Math.Ceiling(y)) {
sum += arr[i];
}
}
if (sum % x == 0)
return true;
else
return false;
}
// Driver Code
public static void Main(){
int[] arr = { 2, 3, 4, 9, 10 };
int n = arr.Length ;
int x = 13;
if (check(arr, x, n)) {
Console.Write("Yes");
}
else {
Console.Write("No");
}
}
}
PHP
Javascript
输出:
Yes