Computer >> Máy Tính >  >> Lập trình >> Lập trình

Số chẵn với tổng nguyên tố


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