Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra n có thể được biểu diễn dưới dạng tổng của k số nguyên tố hay không trong Python

Giả sử chúng ta có hai đầu vào n và k. 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ố giá trị 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
  • nếu k> 2, thì trả về True
  • nếu k giống 2, thì
    • 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
  • nếu n là số nguyên tố thì trả về True
  • trả về Sai

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

def check_prime(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 check_prime(n-2):
         return True
      return False
   if check_prime(n):
      return True
   return False

n = 30
k = 3
print(solve(n, k))

Đầu vào

30, 3

Đầu ra

True