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

n을 확인하는 프로그램은 Python에서 k의 합인지 여부를 표시할 수 있습니다.

<시간/>

숫자 n과 또 다른 숫자 k가 있다고 가정합니다. n이 k개의 소수의 합으로 표현될 수 있는지 확인해야 합니다.

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

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

  • n
  • 거짓을 반환
  • k> 2이면
    • 참 반환
  • k가 2와 같으면
    • n이 짝수이면
      • 참 반환
    • (n-2)가 소수이면
      • 참 반환
    • 거짓을 반환
  • 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))

    입력

    30, 3
    

    출력

    True