Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

เลขคู่ด้วยไพร์มซัม


จำนวนคู่ทั้งหมดตั้งแต่ 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