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

วิธีตรวจสอบเลขเฉพาะ (Prime Number) ใน Python

หลักการคือการหารตัวเลขเป้าหมายด้วยทุกจำนวนตั้งแต่ 3 ถึงรากที่สองของมัน หากหารลงตัวตัวใดตัวหนึ่ง แสดงว่าไม่ใช่เลขเฉพาะ เพราะรากที่สองคือตัวประกอบสูงสุดที่เป็นไปได้

การทำงานของอัลกอริทึม

  1. คืน False สำหรับตัวเลขน้อยกว่า 2
  2. คืน False สำหรับเลขคู่ที่ไม่ใช่ 2
  3. ตรวจสอบความหารลงตัวด้วยเลขคี่ตั้งแต่ 3 ถึง √n
  4. ใช้ all() ร่วมกับ generator expression เพื่อประสิทธิภาพ

โค้ดตัวอย่าง

def is_prime(n):
    if n < 2:
        return False
    elif n != 2 and n % 2 == 0:
        return False
    else:
        return all(n % i for i in range(3, int(n**0.5) + 1, 2))

# ทดสอบ
num = int(input('ป้อนตัวเลข: '))
if is_prime(num):
    print(f"{num} เป็นเลขเฉพาะ")
else:
    print(f"{num} ไม่ใช่เลขเฉพาะ")

ผลลัพธ์ตัวอย่าง

ป้อนตัวเลข: 24
24 ไม่ใช่เลขเฉพาะ

ป้อนตัวเลข: 47
47 เป็นเลขเฉพาะ

การปรับปรุงประสิทธิภาพ

  • ข้ามเลขคู่ด้วย range(3, ..., 2)
  • สำหรับตัวเลขใหญ่มาก ควรใช้ Miller-Rabin primality test
  • ใช้ math.isqrt(n) (Python 3.8+) แทน int(n**0.5) เพื่อความแม่นยำ