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

Python에서 소수를 두 소수의 합으로 표현할 수 있는지 확인

<시간/>

소수 n이 있다고 가정합니다. n을 x + y로 표현할 수 있는지 확인해야 합니다. 여기서 x와 y는 두 개의 소수이기도 합니다.

따라서 입력이 n =19와 같으면 19 =17 + 2와 같이 표현할 수 있으므로 출력은 True가 됩니다.

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

  • isPrime() 함수를 정의합니다. 시간이 걸립니다
  • 숫자가 <=1이면
    • 거짓을 반환
  • 숫자가 2와 같으면
    • 참 반환
  • 숫자가 짝수이면
    • 거짓을 반환
  • 범위 3에서 ((숫자의 제곱근) + 1)의 정수 부분까지 i에 대해 2만큼 증가, do
    • 숫자가 i로 나누어지면
      • 거짓을 반환
  • 참 반환
  • 메인 방법에서 다음을 수행하십시오 -
  • isPrime(숫자) 및 isPrime(숫자 - 2)가 모두 참이면
    • 참 반환
  • 그렇지 않으면
    • 거짓을 반환

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

예시

from math import sqrt
def isPrime(number):
   if number <= 1:
      return False
   if number == 2:
      return True
   if number % 2 == 0:
      return False
   for i in range(3, int(sqrt(number))+1, 2):
      if number%i == 0:
         return False
   return True
def solve(number):
   if isPrime(number) and isPrime(number - 2):
      return True
   else:
      return False
n = 19
print(solve(n))

입력

19

출력

True