Giả sử chúng ta có một số n và một số k khác. Chúng ta phải kiểm tra xem n có thể được biểu diễn dưới dạng tổng của k số nguyên tố hay không.
Vì vậy, nếu đầu vào là n =30 k =3, thì đầu ra sẽ là Đúng vì 30 có thể được biểu diễn như 2 + 11 + 17.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- nếu n
- trả về Sai
- trả về True
- nếu n chẵn thì
- trả về True
- nếu (n-2) là số nguyên tố thì
- trả về True
- trả về Sai
- trả về True
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def isPrime(num):
if num > 1:
for i in range(2, num):
if num % i == 0:
return False
return True
return False
def solve(n, k):
if n < k*2:
return False
if k > 2:
return True
if k == 2:
if n%2 == 0:
return True
if isPrime(n-2):
return True
return False
if isPrime(n):
return True
return False
n = 30
k = 3
print(solve(n, k)) Đầu vào
30, 3
Đầu ra
True