จำนวนคู่ทั้งหมดตั้งแต่ 4 สามารถแสดงเป็นผลรวมของจำนวนเฉพาะสองตัวได้ บางครั้งตัวเลขอาจมีผลรวมของจำนวนเฉพาะมากกว่าหนึ่งตัว
ตัวอย่างเช่น ตัวเลข 10 =(5 + 5) และ (7 + 3)
อัลกอริธึมนี้จะค้นหาผลรวมของจำนวนเฉพาะทั้งหมดสำหรับจำนวนที่กำหนด เมื่อหนึ่งจำนวน x เป็นจำนวนเฉพาะ เราจะตรวจสอบว่า (ตัวเลข - x) เป็นจำนวนเฉพาะหรือไม่ ถ้าใช่ ผลรวมของ x และ (ตัวเลข – 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<iostream> using namespace std; int isPrime(int number) { //check whether number is prime or not int lim; lim = number/2; for(int i = 2; i<=lim; i++) { if(number % i == 0) return 0; //The number is not prime } return 1; //The number is prime } void displayPrimeSum(int num) { string res; if(num%2 != 0) { //when number is an odd number cout << "Invalid Number"; exit(1); } for(int i = 3; i <= num/2; i++) { if(isPrime(i)) { //if i is a prime number if(isPrime(num-i)) { //num - i is also prime, then cout << num <<"= "<<i << " + "<<(num-i)<<endl; } } } } main() { int num; cout << "Enter an even number: "; cin >> num; displayPrimeSum(num); }
ผลลัพธ์
Enter an even number: 70 70 = 3 + 67 70 = 11 + 59 70 = 17 + 53 70 = 23 + 47 70 = 29 + 41