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

ตรวจสอบว่าผลรวมของผลต่างสัมบูรณ์ของหลักที่อยู่ติดกันเป็นจำนวนเฉพาะหรือไม่ใน Python


สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่าผลรวมของผลต่างสัมบูรณ์ของคู่หลักที่อยู่ติดกันเป็นจำนวนเฉพาะหรือไม่

ดังนั้น หากอินพุตเท่ากับ n =574 ผลลัพธ์จะเป็น True เป็น |5-7| + |7-4| =5 นี่คือจำนวนเฉพาะ

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

  • num_str :=n เป็นสตริง
  • รวม :=0
  • สำหรับฉันในช่วง 1 ถึงขนาด num_str - 1 ทำ
    • ผลรวม :=รวม + |หลักที่ตำแหน่ง num_str[i - 1] - หลักที่ตำแหน่ง num_str[i]|
  • ถ้าผลรวมเป็นจำนวนเฉพาะ แล้ว
    • คืนค่า 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(n):
   num_str = str(n)
   total = 0
   for i in range(1, len(num_str)):
      total += abs(int(num_str[i - 1]) - int(num_str[i]))
        
   if isPrime(total):
      return True
   return False
      
n = 574
print(solve(n))

อินพุต

574

ผลลัพธ์

True