检查给定的数字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