检查给定的数字K是否足以到达Python中数组的末尾
假设我们有一个数组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