已知不小于6的偶數都可以分成兩個素數之和。請編寫6到100000的所有偶數的分解,若有一個偶數可以分解成多個素數之和,只需寫出一種即可。
#include <iostream>
#include <algorithm>
using namespace std;bool isprime(int n)//判斷素數{int i = 2;while (i < n){if (n%i == 0)break;i++;}if (i == n)return true;elsereturn false;}int main()
{for (int i = 6; i <= 1000000; i++){if ((i & 0x1) == 0)//判斷是否偶數{int left = i >> 1, right = left;if (isprime(left))cout << i << "可以表達為" << left << "+" << right << endl;else{do{left--;} while (!isprime(left));do{right++;} while (!isprime(right));int sum = left + right;while (sum != i){if (sum < i){do{right++;} while (!isprime(right));}else{do{left--;} while (!isprime(left));}sum = left + right;}cout << i << "可以表達為" << left << "+" << right << endl;}}}return 0;
}
我的思路是: ?