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

วิธีตรวจสอบว่าเลขที่กำหนดเป็น Emirp Number ใน Python

ปัญหา

Emirp Number คือ จำนวนเฉพาะที่เมื่อกลับลำดับหลักตัวเลขแล้ว ได้จำนวนเฉพาะอีกตัวหนึ่งที่ต่างจากตัวเดิม (Emirp = Prime เขียนย้อนกลับ)

ตัวอย่าง: 97 เป็น Emirp เพราะกลับด้านได้ 79 ซึ่งก็เป็นจำนวนเฉพาะเช่นกัน

แนวทางแก้ปัญหา

  1. ตรวจสอบว่า num เป็นจำนวนเฉพาะหรือไม่ หากไม่ใช่ คืนค่า False
  2. กลับลำดับตัวเลขของ num ได้ reverse_num
  3. ตรวจสอบว่า 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))  # Output: True

อินพุต / เอาต์พุต

Input: 97
Output: True