经典算法详解(3)将大于2的偶数分解成两个素数之和
1 #include<iostream> 2 3 using namespace std; 4 5 bool isPrime(int n) { 6 for (int i = 2; i < n; i++) { 7 if (n%i == 0) { //能被2到把自身小1的数整除的都不是素数 8 return false; 9 } 10 } 11 return true; 12 } 13 14 int getPrimePair(int n) { 15 if ((n %2== 0) && (n < 2)) { //不符合题目输入要求返回0,表示失败 16 return 0; 17 } 18 for (int i = 2; i < n / 2; i++) { 19 if (isPrime(i) && isPrime(n - i)) { 20 cout << n << " = " << i << " + " << n - i << endl; 21 } 22 } 23 return 1; //返回1表示成功 24 } 25 26 int main(int argc, char *argv[]) { 27 getPrimePair(28); 28 getchar(); 29 return 0; 30 }
思路:将n分为i和n-i,编写判断素数函数,看i和n-i是否都是素数,是的话打印出来。