สมมติว่าเรามีตัวเลข 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