Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

주어진 숫자 K가 파이썬에서 배열의 끝에 도달하기에 충분한지 확인하십시오

<시간/>

배열 num과 다른 값 k가 있다고 가정합니다. 다음 연산을 수행하여 배열의 끝에 도달할 수 있는지 여부를 확인해야 합니다. Operation:Traverse nums 및 소수가 아닌 값이 있으면 k 값을 1만큼 감소시킵니다. 이제 값이 소수이면 그런 다음 k의 값을 초기 값으로 다시 채웁니다.

따라서 입력이 nums =[8, 5, 6, 7, 8], k =2와 같으면 nums[0]이 소수가 아니므로 출력은 True가 되고 k =1로 만들고 nums[1 ]는 소수이므로 k =2이고 nums[2]는 소수가 아니므로 k =1이고 다시 nums[3]은 소수이므로 k =2이고 마지막으로 nums[4]는 소수가 아니고 k =1입니다. 색인.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 온도 :=k
  • 0부터 arr - 1까지의 범위에 있는 i에 대해
    • arr[i]가 소수이면
      • k :=온도
    • 그렇지 않으면
      • k :=k - 1
    • k <=0이고 i
    • 거짓을 반환
  • 참 반환
  • 이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

    예시 코드

    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