मान लीजिए कि हमारे पास एक सरणी संख्या और दूसरा मान k है। हमें यह जांचना है कि क्या इन ऑपरेशनों को निष्पादित करके सरणी के अंत तक पहुंचना संभव है या नहीं ऑपरेशन:ट्रैवर्स नंबर और, यदि कोई गैर-अभाज्य मान है तो k के मान को 1 से घटाएं। अब यदि कोई मान अभाज्य है फिर k के मान को उसके प्रारंभिक मान में फिर से भरें।
इसलिए, यदि इनपुट अंक =[8, 5, 6, 7, 8], के =2 की तरह है, तो आउटपुट सही होगा क्योंकि अंक [0] अभाज्य नहीं है, फिर के =1 बनाओ, फिर अंक [1] ] अभाज्य है इसलिए k =2, फिर अंक [2] अभाज्य नहीं है इसलिए k =1, फिर से अंक [3] अभाज्य है इसलिए k =2 और अंत में अंक [4] अभाज्य नहीं है और k =1 और हम अंत में हैं सूचकांक।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- अस्थायी:=k
- मैं के लिए 0 से लेकर एआर -1 के आकार की सीमा में, करो
- अगर गिरफ्तारी [i] अभाज्य है, तो
- k:=अस्थायी
- अन्यथा,
- k :=k - 1
- अगर k <=0 और i <एआर का आकार -1 और एआर [i + 1] अभाज्य नहीं है, तो
- झूठी वापसी
- अगर गिरफ्तारी [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