带质数的偶数
4中的所有偶数都可以表示为两个素数之和。有时一个数可以有多个质数组合的和。
例如数字10=(5+5)和(7+3)
该算法将找到给定数字的所有质数和的组合。当一个数x为素数时,则只检查(number-x)是否为素数,如果是,则x与(number-x)之和为偶数。
输入和输出
Input: Even number: 70 Output: Prime sums 70 = 3 + 67 70 = 11 + 59 70 = 17 + 53 70 = 23 + 47 70 = 29 + 41
算法
dispPrimeSum(num)
输入-偶数。
输出:使用一些素数的总和显示数字。
Begin if num is odd, then exit for i := 3 to num/2, do if i is prime, then if (num - i) is prime, then display ‘’num = i + (num – i)” done End
示例
#include输出结果using namespace std; int isPrime(int number) { //检查数字是否为素数 int lim; lim = number/2; for(int i = 2; i<=lim; i++) { if(number % i == 0) return 0; //数字不是素数 } return 1; //数字是素数 } void displayPrimeSum(int num) { string res; if(num%2 != 0) { //当number是奇数时 cout << "Invalid Number"; exit(1); } for(int i = 3; i <= num/2; i++) { if(isPrime(i)) { //如果我是素数 if(isPrime(num-i)) { //num-i也是素数,那么 cout << num <<"= "<> num; displayPrimeSum(num); }
输入偶数: 70 70 = 3 + 67 70 = 11 + 59 70 = 17 + 53 70 = 23 + 47 70 = 29 + 41