Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra xem số nguyên tố có thể biểu diễn dưới dạng tổng của hai số nguyên tố hay không trong Python


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