Số nguyên tố sinh đôi (twin primes) là cặp số nguyên tố chênh lệch 2. Các cặp đầu: {3,5}, {5,7}, {11,13}, {17,19}. Có thể sinh bằng vòng lặp kiểm tra tính nguyên tố.
Ví dụ
def is_prime(n):
for i in range(2, n):
if n % i == 0:
return False
return True
def generate_twins(start, end):
for i in range(start, end):
j = i + 2
if is_prime(i) and is_prime(j):
print("{:d} and {:d}".format(i, j))
generate_twins(2, 100)
Kết quả
3 and 5 5 and 7 11 and 13 17 and 19 29 and 31 41 and 43 59 and 61 71 and 73
Tối ưu: Hàm is_prime có thể cải tiến bằng cách chỉ kiểm tra đến sqrt(n) và bỏ qua số chẵn.