ปัญหา
Emirp Number คือ จำนวนเฉพาะที่เมื่อกลับลำดับหลักตัวเลขแล้ว ได้จำนวนเฉพาะอีกตัวหนึ่งที่ต่างจากตัวเดิม (Emirp = Prime เขียนย้อนกลับ)
ตัวอย่าง: 97 เป็น Emirp เพราะกลับด้านได้ 79 ซึ่งก็เป็นจำนวนเฉพาะเช่นกัน
แนวทางแก้ปัญหา
- ตรวจสอบว่า
numเป็นจำนวนเฉพาะหรือไม่ หากไม่ใช่ คืนค่าFalse - กลับลำดับตัวเลขของ
numได้reverse_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)) # Output: Trueอินพุต / เอาต์พุต
Input: 97 Output: True