📜  给定数组中素数位置的0和1的数量(1)

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

给定数组中素数位置的0和1的数量

在这个题目中,我们需要计算给定数组中素数位置的0和1的数量。首先,我们需要了解什么是素数。

素数

素数是指只能被1和自身整除的正整数。例如,2、3、5、7、11、13等等都是素数,而4、6、8、9、10、12等等不是素数。

下面是一个判断素数的示例代码:

def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

这个函数会返回一个布尔值,表示给定的数是不是素数。

数组中素数位置的0和1的数量

现在我们已经有了判断素数的工具,我们可以遍历给定的数组,计算素数位置上的0和1的数量。

下面是一个示例代码:

def count_zeros_ones_at_prime_indices(arr):
    num_zeros = 0
    num_ones = 0
    for i in range(len(arr)):
        if is_prime(i):
            if arr[i] == 0:
                num_zeros += 1
            else:
                num_ones += 1
    return num_zeros, num_ones

这个函数会返回一个元组,其中第一个元素表示素数位置上0的数量,第二个元素表示素数位置上1的数量。

Markdown返回示例
功能

计算给定数组中素数位置的0和1的数量。

参数
  • arr: 给定数组。
返回值
  • 一个元组,其中第一个元素表示素数位置上0的数量,第二个元素表示素数位置上1的数量。
示例
assert count_zeros_ones_at_prime_indices([0, 1, 0, 1, 0, 1]) == (1, 2)
assert count_zeros_ones_at_prime_indices([1, 0, 1, 0, 1, 0]) == (2, 1)