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

Chương trình kiểm tra n có thể được hiển thị dưới dạng tổng của k hoặc không trong Python

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
  • 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 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