ধরুন আমাদের একটি অ্যারে সংখ্যা এবং আরেকটি মান k আছে। আমাদের পরীক্ষা করতে হবে যে এই ক্রিয়াকলাপগুলি সম্পাদন করে অ্যারের শেষ পর্যন্ত পৌঁছানো সম্ভব কি না অপারেশন:ট্রাভার্স সংখ্যা এবং, যদি কোনো নন-প্রাইম মান থাকে তাহলে k-এর মান 1 দ্বারা হ্রাস করুন। এখন যদি কোনো মান প্রাইম হয় তারপর k-এর মানকে তার প্রাথমিক মানের সাথে রিফিল করুন।
সুতরাং, যদি ইনপুটটি nums =[8, 5, 6, 7, 8], k =2 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ nums[0] প্রাইম নয়, তারপর k =1 করুন, তারপর সংখ্যা[1] ] মৌলিক তাই k =2, তারপর সংখ্যা[2] মৌলিক নয় তাই k =1, আবার সংখ্যা[3] মৌলিক তাই k =2 এবং অবশেষে সংখ্যা [4] মৌলিক নয় এবং k =1 এবং আমরা শেষ সূচক।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- তাপ :=k
- এর জন্য 0 থেকে arr - 1 এর আকারের মধ্যে, do
- যদি arr[i] প্রাইম হয়, তাহলে
- k :=temp
- অন্যথায়,
- k :=k - 1
- যদি k <=0 এবং i <এর আকার - 1 এবং arr[i + 1] প্রাইম না হয়, তাহলে
- মিথ্যে ফেরত দিন
- যদি 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