>  기사  >  백엔드 개발  >  C++에서 숫자를 가능한 가장 큰 소수의 합으로 표현합니다.

C++에서 숫자를 가능한 가장 큰 소수의 합으로 표현합니다.

PHPz
PHPz앞으로
2023-08-31 16:29:161207검색

C++에서 숫자를 가능한 가장 큰 소수의 합으로 표현합니다.

문제에 대해 토론하세요. 예를 들어 숫자 N이 주어지면 숫자를 가장 큰 소수로 나누어야 하며

Input: N = 7
Output: 2 2 3
Explanation: 7 can be represented as the sum of two 2’s and a 3 which are the maximum possible prime numbers.

Input : N = 17
Output: 2 2 2 2 2 2 2 3

해결 방법

숫자를 소수로 표현하려면 다음과 같이 하면 됩니다. N의 소수, 그런 다음 소수의 차이를 확인하세요. 차이가 소수라면 N을 두 소수의 합으로 표현할 수 있습니다.

하지만 여기서는 최대 소수 수를 찾아야 하며 이를 위해서는 최소 소수, 즉 2와 3을 사용해야 합니다. 2와 3 중에서 어떤 숫자든 만들 수 있어요.

  • 짝수의 개수를 확인하세요. 짝수이면 (N/2) 2의 합으로 구성될 수 있습니다.

  • 은 3합[(N-3)/2]으로 구성될 수 있고, 홀수인 경우 2로 구성될 수 있습니다.

  • 이런 식으로 가장 큰 소수의 합을 사용하여 N을 나타낼 수 있습니다.

Example

#include <bits/stdc++.h>
using namespace std;
int main(){
   int N = 7;
   // checking if N is odd,
   // If yes, then print 3
   // and subtract 3 from N.
   if (N & 1 == 1) {
      cout << "3 +";
      N -= 3;
   }
   // // keep subtracting and printing 2
   // until N is becomes 0.
   while (N!=2) {
      cout << " 2 +";
      N -= 2;
   }
   cout << " 2";
   return 0;
}

Output

3 + 2 + 2

Conclusion

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

위 내용은 C++에서 숫자를 가능한 가장 큰 소수의 합으로 표현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제