討論一個問題,例如,給定一個數字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 的和組成。
可以由一個三和 [ (N-3) / 2 組成] 如果是奇數則為2。
這樣,我們就可以用最大質數個數總和來表示N。
#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; }
3 + 2 + 2
在本教程中,我們討論了將數字表示為最大素數之和。我們討論了一種解決此問題的簡單方法,即將數字表示為 2 和 3 的和。我們也討論了解決此問題的 C 程序,我們可以使用 C、Java、Python 等程式語言來實作。我們希望本教學對您有所幫助。
以上是用C++將一個數字表示為最大可能數量的質數總和的詳細內容。更多資訊請關注PHP中文網其他相關文章!