📜  给定矩阵每一行的 GCD 总和

📅  最后修改于: 2022-05-13 01:57:21.992000             🧑  作者: Mango

给定矩阵每一行的 GCD 总和

给定一个大小为N * N的矩阵mat[][] ,任务是找到给定矩阵所有行的 GCD 的总和。
例子:

方法:求矩阵每一行的GCD,并将其加到总和中。总和将是所有行的 GCD 的总和。
下面是上述方法的实现:

C++
// C++ implementation of the approach
#include 
using namespace std;
 
// Function to return gcd of a and b
int gcd(int a, int b)
{
    if (a == 0)
        return b;
    return gcd(b % a, a);
}
 
// Function to return the sum of gcd
// of each row of the given matrix
int sumGcd(int arr[][4], int n)
{
 
    // To store the required sum
    int sum = 0;
 
    for (int i = 0; i < n; i++) {
 
        // To store the gcd of the current row
        int gcdRow = arr[i][0];
        for (int j = 1; j < n; j++)
            gcdRow = gcd(arr[i][j], gcdRow);
 
        // Add gcd of the current row to the sum
        sum += gcdRow;
    }
 
    // Return the required sum
    return sum;
}
 
// Driver code
int main()
{
    int arr[][4] = { { 2, 4, 6, 8 },
                     { 3, 6, 9, 12 },
                     { 4, 8, 12, 16 },
                     { 5, 10, 15, 20 } };
    int size = sizeof(arr) / sizeof(arr[0]);
 
    cout << sumGcd(arr, size);
 
    return 0;
}


Java
// Java implementation of the approach
 
class GFG
{
 
    // Function to return gcd of a and b
    static int gcd(int a, int b)
    {
        if (a == 0)
            return b;
        return gcd(b % a, a);
    }
     
    // Function to return the sum of gcd
    // of each row of the given matrix
    static int sumGcd(int arr[][], int n)
    {
     
        // To store the required sum
        int sum = 0;
     
        for (int i = 0; i < n; i++)
        {
     
            // To store the gcd of the current row
            int gcdRow = arr[i][0];
            for (int j = 1; j < n; j++)
                gcdRow = gcd(arr[i][j], gcdRow);
     
            // Add gcd of the current row to the sum
            sum += gcdRow;
        }
     
        // Return the required sum
        return sum;
    }
     
    // Driver code
    public static void main (String[] args)
    {
        int arr[][] = { { 2, 4, 6, 8 },
                        { 3, 6, 9, 12 },
                        { 4, 8, 12, 16 },
                        { 5, 10, 15, 20 } };
                         
        int size = arr.length ;
     
        System.out.println(sumGcd(arr, size));
     
    }
}
 
// This code is contributed by AnkitRai01


Python3
# Python3 implementation of the approach
 
# Function to return gcd of a and b
def gcd(a, b):
    if (a == 0):
        return b
    return gcd(b % a, a)
 
 
# Function to return the Sum of gcd
# of each row of the given matrix
def SumGcd(arr, n):
 
    # To store the required Sum
    Sum = 0
 
    for i in range(n):
 
        # To store the gcd of the current row
        gcdRow = arr[i][0]
 
        for j in range(1,n):
            gcdRow = gcd(arr[i][j], gcdRow)
 
        # Add gcd of the current row to the Sum
        Sum += gcdRow
 
    # Return the required Sum
    return Sum
 
 
# Driver code
 
arr= [ [ 2, 4, 6, 8 ],
    [ 3, 6, 9, 12 ],
    [ 4, 8, 12, 16 ],
    [ 5, 10, 15, 20 ] ]
 
size = len(arr)
 
print(SumGcd(arr, size))
 
# This code is contributed by mohit kumar 29


C#
// C# implementation of the approach
using System;
class GFG
{
 
    // Function to return gcd of a and b
    static int gcd(int a, int b)
    {
        if (a == 0)
            return b;
        return gcd(b % a, a);
    }
     
    // Function to return the sum of gcd
    // of each row of the given matrix
    static int sumGcd(int [ , ]arr, int n)
    {
     
        // To store the required sum
        int sum = 0;
     
        for (int i = 0; i < n; i++)
        {
     
            // To store the gcd of the current row
            int gcdRow = arr[i, 0];
            for (int j = 1; j < n; j++)
                gcdRow = gcd(arr[i, j], gcdRow);
     
            // Add gcd of the current row to the sum
            sum += gcdRow;
        }
     
        // Return the required sum
        return sum;
    }
     
    // Driver code
    public static void Main ()
    {
        int [ , ] arr = new int[ 4, 4 ]{{ 2, 4, 6, 8 },
                                        { 3, 6, 9, 12 },
                                        { 4, 8, 12, 16 },
                                        { 5, 10, 15, 20 }};
                         
        int size = 4;
        Console.WriteLine(sumGcd(arr, size));
    }
}
 
// This code is contributed by ihritik


PHP


Javascript


输出:
14

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程