배열 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
- 거짓을 반환
- arr[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