ปัญหา
ให้จำนวน 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