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

ตรวจสอบว่าหมายเลขที่ระบุเป็นหมายเลข Emirp หรือไม่ใน Python


สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่า n เป็นหมายเลข Emirp หรือไม่ เราทุกคนทราบดีว่าจำนวน Emirp คือ (ตัวอักษรของจำนวนเฉพาะในทิศทางย้อนกลับ) เป็นจำนวนเฉพาะที่ทำให้เกิดจำนวนเฉพาะที่แตกต่างกันเมื่อตัวเลขกลับกัน

ดังนั้น หากอินพุตเป็น n =97 เอาต์พุตจะเป็น True เนื่องจากส่วนกลับของ 97 คือ 79 ซึ่งเป็นจำนวนเฉพาะอีกตัวหนึ่ง

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

  • ถ้า num ไม่ใช่จำนวนเฉพาะ แล้ว
    • คืนค่าเท็จ
  • reverse_num :=ย้อนกลับของ num
  • คืนค่า จริง เมื่อ reverse_num เป็นจำนวนเฉพาะ มิฉะนั้น จะเป็นเท็จ

ตัวอย่าง

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

def is_prime(num):
   if num <= 1:
      return False
   for i in range(2, num):
      if num % i == 0:
         return False
   return True
def solve(num):
   if not is_prime(num):
      return False
   reverse_num = 0
   while num != 0:
      d = num % 10
      reverse_num = reverse_num * 10 + d
      num = int(num / 10)
   return is_prime(reverse_num)
n = 97
print (solve(n))

อินพุต

97

ผลลัพธ์

True