Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

n을 확인하는 프로그램은 Python에서 k 소수의 합으로 나타낼 수 있습니다.

<시간/>

두 개의 입력 n과 k가 있다고 가정합니다. n이 k개의 소수 값의 합으로 표현될 수 있는지 확인해야 합니다.

따라서 입력이 n =30 k =3과 같으면 30이 2 + 11 + 17과 같이 표시될 수 있으므로 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • n
  • k> 2이면 True를 반환합니다.
  • k가 2와 같으면
    • n이 짝수이면 True를 반환합니다.
    • (n-2)가 소수이면 True를 반환합니다.
    • 거짓을 반환
  • n이 소수이면 True를 반환합니다.
  • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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

입력

30, 3

출력

True