제목 설명
모든 짝수 (2보다 큰)는 두 개의 소수로 구성 될 수 있습니다. 두 개의 소수가 짝수를 구성하는 경우가 많습니다.이 질문에는 가장 작은 숫자로 지정된 짝수를 형성하는 소수 쌍의 출력이 필요합니다. 두 소수의 차이.
이 질문에는 여러 세트의 샘플 입력이 포함되어 있습니다.
설명 입력 :
짝수를 입력하세요.
출력 설명 :
두 개의 소수 출력
샘플
입력20
산출
7
13
주제 분석
- 먼저 숫자가 소수인지 확인해야합니다. 여기서 소수의 범위는 2에서 제곱근 n까지로 판단합니다.이 구간에 n으로 나눌 수있는 숫자가 있으면 n은 소수가 아니라는 의미이고, 그렇지 않으면 n은 소수입니다.
- 이 짝수의 1/2에서 양변까지 적합한 소수를 찾아 두 소수의 차이가 가장 작은 지 확인할 수 있습니다. 찾으면 루프에서 뛰어 내릴 수 있습니다.
참조 코드
#include <iostream>
#include <math.h>
using namespace std;
bool isPrime(int n)
{
int sq = sqrt(n);
for(int i = 2; i <= sq; ++i)
{
if(n%i == 0)
return false;
}
return true;
}
int main()
{
int num;
while(cin >> num)
{
int half = num/2;
int i = 0;
for(i = half; i > 2; ++i)
{
if(isPrime(i) && isPrime(num-i))
break;
}
cout << num-i << endl << i << endl;
}
return 0;
}