📜  检查数组中的完美平方和是否可被x整除

📅  最后修改于: 2021-04-23 05:50:56             🧑  作者: Mango

给定一个数组arr []和一个整数x ,任务是检查该数组中所有理想平方的和是否可被x整除。如果可分割,则打印“是”,否则打印“否”
例子:

方法:in – 1循环运行,并检查arr [i]是否为理想正方形。如果arr [i]是一个完美的平方,则更新sum = sum + arr [i] 。如果最后求和%x = 0,则打印是,否则打印。要检查一个元素是否是一个完美的正方形,请按照以下步骤操作:

下面是上述方法的实现:

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