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

    猜你喜欢