Tất cả các số chẵn từ 4, có thể được biểu diễn dưới dạng tổng của hai số nguyên tố. Đôi khi một số có thể có nhiều hơn một tổng của tổ hợp số nguyên tố.
Ví dụ, số 10 =(5 + 5) và (7 + 3)
Thuật toán này sẽ tìm tất cả các tổ hợp các tổng nguyên tố của một số nhất định. Khi một số x là số nguyên tố thì chỉ chúng ta mới kiểm tra xem (số - x) có phải là số nguyên tố hay không, nếu có, tổng của x và (số - x) đại diện cho số chẵn.
Đầu vào và Đầu ra
Input: Even number: 70 Output: Prime sums 70 = 3 + 67 70 = 11 + 59 70 = 17 + 53 70 = 23 + 47 70 = 29 + 41
Thuật toán
dispPrimeSum(num)
Đầu vào - Số chẵn.
Đầu ra: Hiển thị số bằng tổng của một số số nguyên tố.
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
Ví dụ
#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); }
Đầu ra
Enter an even number: 70 70 = 3 + 67 70 = 11 + 59 70 = 17 + 53 70 = 23 + 47 70 = 29 + 41