Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 가능한 최대 소수 수의 합으로 숫자를 나타냅니다.

<시간/>

숫자 N이 주어지고 이 숫자를 최대 소수 합으로 분할해야 하는 문제에 대해 논의합니다. 예를 들면

입력:N =7출력:2 2 3설명:7은 가능한 최대 소수인 두 개의 2와 3의 합으로 나타낼 수 있습니다.입력:N =17출력:2 2 2 2 2 2 2 3 

해결책을 찾기 위한 접근 방식

소수로 숫자를 나타내기 위해 N으로 소수를 빼고 소수의 차이를 확인할 수 있습니다. 차이가 소수이면 N을 두 소수를 더한 것으로 나타낼 수 있습니다.

하지만 여기서 우리는 소수의 최대 수를 찾아야 하며, 그러기 위해서는 최소 소수, 즉 2와 3을 취해야 합니다. 2와 3의 합으로 어떤 수라도 만들 수 있습니다.

  • 짝수를 확인하십시오. 짝수이면 ( N/2 ) 2의 합으로 만들 수 있습니다.

  • 홀수인 경우 1의 3과 [ (N-3) / 2 ] 2로 구성될 수 있습니다.

  • 이런 식으로 최대 소수의 합으로 N을 나타낼 수 있습니다.

예시

#include 네임스페이스 std;int main(){ int N =7; // N이 홀수인지 확인, // 그렇다면 3을 출력하고 // N에서 3을 뺍니다. if (N &1 ==1) { cout <<"3 +"; N -=3; } // // 계속 빼서 2를 출력합니다 // N이 0이 될 때까지. while (N!=2) { cout <<" 2 +"; N -=2; } cout <<" 2"; 반환 0;}

출력

3 + 2 + 2

결론

이 튜토리얼에서 우리는 소수의 최대 개수의 합으로 숫자를 표현하는 것에 대해 논의했습니다. 우리는 숫자를 2와 3의 합으로 표현하여 이 문제를 해결하는 간단한 접근 방식에 대해 논의했습니다. 우리는 또한 C, Java, Python 등과 같은 프로그래밍 언어로 할 수 있는 이 문제에 대한 C++ 프로그램에 대해 논의했습니다. 이 튜토리얼이 도움이 되기를 바랍니다.