📜  在第K个数组中找到质数之和(1)

📅  最后修改于: 2023-12-03 15:37:45.343000             🧑  作者: Mango

在第K个数组中找到质数之和

质数是指除了1和本身以外,没有其他的因数能够整除它的自然数。这个问题要求我们在第K个数组中找到所有的质数,并将它们的和返回。

解题思路

在这个问题中,我们只需要判断每个数是否为质数,如果是质数,就将它加入到和中。

判断质数的方法通常有两种:

  1. 将该数分别除以2至该数的平方根,如果都无法整除,则该数是质数。
  2. 判断该数是否可以被2整除,如果可以,那么该数只可能是2,否则将该数从3开始分别除以3, 5, 7, 9,...直至该数的平方根,如果都无法整除,则该数是质数。

我们将使用第一种方法来判断质数。

代码实现
def is_prime(num):
    """
    判断一个数是否为质数
    """
    if num <= 1:
        return False
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            return False
    return True


def sum_of_primes(arrays, k):
    """
    在第k个数组中找到所有的质数,并将它们的和返回
    """
    arr = arrays[k - 1]
    s = 0
    for num in arr:
        if is_prime(num):
            s += num
    return s
示例
arrays = [[1, 3, 4, 7], [2, 6, 9, 10], [5, 8, 11]]
k = 2
print(sum_of_primes(arrays, k))  # 输出: 2

在上面的示例中,我们在第2个数组中找到了所有的质数(2),并将它们的和返回。