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

ตรวจสอบว่าตัวเลข 3 ตัวเป็นจำนวนเฉพาะติดกัน (Adjacent Primes) หรือไม่ ใน Python


ปัญหา

จำนวนเฉพาะติดกัน (Adjacent Primes) คือ จำนวนเฉพาะ 3 ตัวที่ไม่มีจำนวนเฉพาะอื่นอยู่ระหว่างกัน เช่น 5, 7, 11

ตัวอย่าง

nums = [5, 7, 11] → True (5, 7, 11 เป็นเฉพาะติดกัน)

แนวคิดการแก้ปัญหา

  1. ตรวจสอบว่าทั้ง 3 ตัวเป็นจำนวนเฉพาะ
  2. หาจำนวนเฉพาะถัดไปจากตัวแรก → ต้องเท่ากับตัวที่สอง
  3. หาจำนวนเฉพาะถัดไปจากตัวที่สอง → ต้องเท่ากับตัวที่สาม

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

def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num**0.5)+1):
        if num % i == 0:
            return False
    return True

def next_prime(num):
    n = num + 1
    while not is_prime(n):
        n += 1
    return n

def solve(x, y, z):
    if not (is_prime(x) and is_prime(y) and is_prime(z)):
        return False
    if next_prime(x) != y:
        return False
    if next_prime(y) != z:
        return False
    return True

print(solve(5, 7, 11))  # True

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

Input:  [5,7,11]
Output: True