Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าตัวเลข K ที่กำหนดนั้นเพียงพอที่จะไปถึงจุดสิ้นสุดของอาร์เรย์ใน Python . หรือไม่


สมมติว่าเรามีจำนวนอาร์เรย์และค่าอื่น k เราต้องตรวจสอบว่าเป็นไปได้ที่จะถึงจุดสิ้นสุดของอาร์เรย์โดยดำเนินการเหล่านี้หรือไม่ Operation:Traverse nums และหากมีค่าที่ไม่ใช่ไพรม์ใด ๆ ให้ลดค่าของ k ลง 1 ตอนนี้ถ้าค่าใดเป็นจำนวนเฉพาะ แล้วเติมค่า k เป็นค่าเริ่มต้น

ดังนั้น หากอินพุตเป็น nums =[8, 5, 6, 7, 8], k =2 ผลลัพธ์จะเป็น True เนื่องจาก nums[0] ไม่ใช่จำนวนเฉพาะ ให้ k =1 แล้ว nums[1 ] เป็นจำนวนเฉพาะ ดังนั้น k =2 จากนั้น nums[2] ไม่ใช่จำนวนเฉพาะ ดังนั้น k =1 อีกครั้ง nums[3] เป็นจำนวนเฉพาะ ดังนั้น k =2 และสุดท้าย nums[4] ไม่ใช่จำนวนเฉพาะ และ k =1 และในที่สุดเราก็ได้ ดัชนี

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • อุณหภูมิ :=k
  • สำหรับฉันในช่วง 0 ถึงขนาดของ arr - 1 ทำ
    • ถ้า arr[i] เป็นจำนวนเฉพาะ แล้ว
      • k :=อุณหภูมิ
    • มิฉะนั้น
      • k :=k - 1
    • ถ้า k <=0 และฉัน <ขนาดของ arr - 1 และ arr[i + 1] ไม่ใช่จำนวนเฉพาะ ดังนั้น
      • คืนค่าเท็จ
  • คืนค่า True

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

โค้ดตัวอย่าง

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