Giả sử chúng ta có một dãy nums và một giá trị k khác. Chúng ta phải kiểm tra xem liệu có thể đi đến cuối mảng bằng cách thực hiện các phép toán này hay không Hoạt động:Traverse nums và, nếu có bất kỳ giá trị nào không phải nguyên tố thì giảm giá trị của k đi 1. Bây giờ nếu có giá trị nào là số nguyên tố sau đó điền giá trị của k vào giá trị ban đầu của nó.
Vì vậy, nếu đầu vào giống như nums =[8, 5, 6, 7, 8], k =2, thì đầu ra sẽ là True vì nums [0] không phải là số nguyên tố, sau đó đặt k =1, sau đó nums [1 ] là số nguyên tố nên k =2, sau đó nums [2] không phải là số nguyên tố nên k =1, lại là nums [3] là số nguyên tố nên k =2 và cuối cùng nums [4] không phải là số nguyên tố và k =1 và cuối cùng chúng ta chỉ mục.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- tạm thời:=k
- đối với tôi trong phạm vi từ 0 đến kích thước của arr - 1, thực hiện
- nếu arr [i] là số nguyên tố thì
- k:=temp
- nếu không,
- k:=k - 1
- nếu k <=0 và i
- trả về Sai
- nếu arr [i] là số nguyên tố thì
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Mã mẫu
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))
Đầu vào
[8, 5, 6, 7, 8], 2
Đầu ra
True