Giả sử chúng ta có một số nguyên tố n. Cần kiểm tra xem có thể biểu diễn n = x + y với x, y cũng là số nguyên tố hay không.
Ví dụ, n = 19, đầu ra True vì 19 = 17 + 2 (cả hai đều nguyên tố).
Lưu ý: ngoại trừ 2, mọi số nguyên tố đều lẻ. Tổng của hai số lẻ là chẵn, nên để tổng là số nguyên tố lẻ, một trong hai phải là 2. Do đó chỉ cần kiểm tra n-2 có phải nguyên tố hay không.
Các bước giải quyết:
- Định nghĩa hàm isPrime(number):
- Nếu number <= 1: False.
- Nếu number == 2: True.
- Nếu number chẵn: False.
- Duyệt i từ 3 đến sqrt(number), bước 2: nếu chia hết, False.
- Trả về True.
- Nếu isPrime(n) và isPrime(n-2) đều True, trả về True, ngược lại False.
Xem ví dụ dưới đây để hiểu rõ hơn:
Ví dụ
from math import sqrt
def isPrime(number):
if number <= 1:
return False
if number == 2:
return True
if number % 2 == 0:
return False
for i in range(3, int(sqrt(number)) + 1, 2):
if number % i == 0:
return False
return True
def solve(number):
return isPrime(number) and isPrime(number - 2)
n = 19
print(solve(n))
Đầu vào
19
Đầu ra
True