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

ตรวจสอบว่าความต่างของพื้นที่สองสี่เหลี่ยมจัตุรัสเป็นจำนวนเฉพาะหรือไม่ ใน Python


ปัญหา

ให้จำนวน x และ y ตรวจสอบว่า x² - y² เป็นจำนวนเฉพาะหรือไม่

ทฤษฎี

x² - y² = (x-y)(x+y)
ผลคูณของจำนวนเต็มสองจำนวนจะเป็นเฉพาะได้ก็ต่อเมื่อ:

  • ตัวหนึ่งเป็น 1
  • อีกตัวเป็นจำนวนเฉพาะ
เนื่องจาก x+y > x-y และทั้งคู่บวก → ต้องมี x-y = 1 และ x+y เป็นเฉพาะ

ตัวอย่าง

x = 7, y = 6 → x-y=1, x+y=13 (เฉพาะ) → 49-36=13 → True

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

def is_prime(n):
    if n < 2: return False
    if n <= 3: return True
    if n % 2 == 0 or n % 3 == 0: return False
    i = 5
    while i * i <= n:
        if n % i == 0 or n % (i+2) == 0:
            return False
        i += 6
    return True

def solve(x, y):
    return (x - y == 1) and is_prime(x + y)

print(solve(7, 6))  # True
print(solve(10, 8)) # False (x-y=2)

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

Input:  7, 6
Output: True