소수 n이 있다고 가정합니다. n을 x + y로 표현할 수 있는지 확인해야 합니다. 여기서 x와 y는 두 개의 소수이기도 합니다.
따라서 입력이 n =19와 같으면 19 =17 + 2와 같이 표현할 수 있으므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- isPrime() 함수를 정의합니다. 시간이 걸립니다
- 숫자가 <=1이면
- 거짓을 반환
- 숫자가 2와 같으면
- 참 반환
- 숫자가 짝수이면
- 거짓을 반환
- 범위 3에서 ((숫자의 제곱근) + 1)의 정수 부분까지 i에 대해 2만큼 증가, do
- 숫자가 i로 나누어지면
- 거짓을 반환
- 숫자가 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