📜  计算给定数组中存在的K的因子

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

给定一个数组arr []和一个整数K ,任务是计算该数组中存在的K个因子的计数。
例子:

天真的方法:一个简单的解决方案是找到K的所有因子,然后针对每个因子在数组中进行迭代,并检查它是否存在于数组中。如果是,则将因子计数加1。
高效的方法:这种想法不是在数组上迭代找到K的所有因子,而是在模运算符的帮助下检查每个元素是否为K的因子。如果是,则增加因子K的计数。
下面是上述方法的实现:

C++
// C++ implementaion to find the count
// of factors of K present in array
 
#include 
using namespace std;
 
// Function to find the count
// of factors of K present in array
int calcCount(int arr[], int n, int k)
{
    int count = 0;
 
    // Loop to consider every
    // element of array
    for (int i = 0; i < n; i++) {
        if (k % arr[i] == 0)
            count++;
    }
 
    return count;
}
 
// Driver Code
int main()
{
    int arr[] = { 1, 2, 4, 5, 6 };
    int n = sizeof(arr) / sizeof(arr[0]);
    int k = 6;
 
    // Function Call
    cout << calcCount(arr, n, k);
 
    return 0;
}


Java
// Java implementaion to find the count
// of factors of K present in array
class GFG{
 
// Function to find the count
// of factors of K present in array
static int calcCount(int arr[], int n, int k)
{
    int count = 0;
 
    // Loop to consider every
    // element of array
    for(int i = 0; i < n; i++)
    {
       if (k % arr[i] == 0)
           count++;
    }
    return count;
}
 
// Driver Code
public static void main(String[] args)
{
    int arr[] = { 1, 2, 4, 5, 6 };
    int n = arr.length;
    int k = 6;
 
    // Function Call
    System.out.print(calcCount(arr, n, k));
}
}
 
// This code is contributed by gauravrajput1


Python3
# Python3 implementaion to find the count
# of factors of K present in array
 
# Function to find the count
# of factors of K present in array
def calcCount(arr, n, k):
 
    count = 0
 
    # Loop to consider every
    # element of array
    for i in range(0, n):
        if (k % arr[i] == 0):
            count = count + 1
 
    return count
 
# Driver Code
arr = [ 1, 2, 4, 5, 6 ]
n = len(arr)
k = 6
 
# Function Call
print(calcCount(arr, n, k))
 
# This code is contributed by PratikBasu


C#
// C# implementaion to find the count
// of factors of K present in array
using System;
 
class GFG{
 
// Function to find the count
// of factors of K present in array
static int calcCount(int []arr, int n, int k)
{
    int count = 0;
 
    // Loop to consider every
    // element of array
    for(int i = 0; i < n; i++)
    {
       if (k % arr[i] == 0)
           count++;
    }
    return count;
}
 
// Driver Code
public static void Main(String[] args)
{
    int []arr = { 1, 2, 4, 5, 6 };
    int n = arr.Length;
    int k = 6;
 
    // Function Call
    Console.Write(calcCount(arr, n, k));
}
}
 
// This code is contributed by Amit Katiyar


Javascript


输出:
3

时间复杂度: O(N)