假设我们有一个数组nums和另一个值k。我们必须检查是否可以通过执行以下操作来到达数组的末尾:操作:遍历nums,如果存在任何非素数,则将k的值减1。现在,如果任何值是素数然后将k的值重新填充为其初始值。
因此,如果输入像nums = [8、5、6、7、8],k = 2,则输出将为True,因为nums [0]不是素数,则使k = 1,然后nums [1 ]是素数,因此k = 2,那么nums [2]不是素数,所以k = 1,再次nums [3]是素数,所以k = 2,最后nums [4]不是素数,k = 1,我们最后指数。
为了解决这个问题,我们将遵循以下步骤-
温度:= k
对于范围从0到arr-1的i,执行
返回False
k:= k-1
k:=温度
如果arr [i]是素数,则
除此以外,
如果k <= 0且i <arr-1的大小且arr [i + 1]不是素数,则
返回True
让我们看下面的实现以更好地理解-
def isPrime(num): if num > 1: for i in range(2, num): if num % i == 0: return False return True return False def solve(arr,k): temp = k for i in range(len(arr)): if isPrime(arr[i]): k = temp else: k -= 1 if k <= 0 and i < (len(arr) - 1) and isPrime(arr[i + 1]) == False: return False return True nums = [8, 5, 6, 7, 8] k = 2 print(solve(nums, k))
[8, 5, 6, 7, 8], 2输出结果
True