৪ থেকে শুরু করে সব সম সংখ্যা দুটি প্রাইম সংখ্যার যোগফল হিসেবে প্রকাশ করা যায়। কখনো কখনো একটি সংখ্যার একাধিক প্রাইম সংখ্যা যোগফল কম্বিনেশন থাকতে পারে।
উদাহরণস্বরূপ, সংখ্যা ১০ = (৫ + ৫) এবং (৭ + ৩)
এই অ্যালগরিদম প্রদত্ত সংখ্যার জন্য প্রাইম যোগফলের সব কম্বিনেশন বের করবে। যখন একটি সংখ্যা x প্রাইম, তখনই আমরা চেক করব (number - x) প্রাইম কিনা, যদি হয়, তবে x এবং (number – x)-এর যোগফল সম সংখ্যাটি প্রকাশ করবে।
ইনপুট এবং আউটপুট
ইনপুট: সম সংখ্যা: ৭০ আউটপুট: প্রাইম যোগফল 70 = 3 + 67 70 = 11 + 59 70 = 17 + 53 70 = 23 + 47 70 = 29 + 41
অ্যালগরিদম
dispPrimeSum(num)
ইনপুট - সম সংখ্যা।
আউটপুট: কিছু প্রাইম সংখ্যার যোগফল ব্যবহার করে সংখ্যাটি প্রদর্শন করুন।
শুরু
যদি num বিজোড় হয়, তবে
বের হোন
i := 3 থেকে num/2 পর্যন্ত, করুন
যদি i প্রাইম হয়, তবে
যদি (num - i) প্রাইম হয়, তবে
"num = i + (num – i)" প্রদর্শন করুন
শেষ
শেষউদাহরণ
#include<iostream> 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) { //যখন সংখ্যা বিজোড় হয় cout << "Invalid Number"; exit(1); } for(int i = 3; i <= num/2; i++) { if(isPrime(i)) { //যদি i একটি প্রাইম সংখ্যা if(isPrime(num-i)) { //num - iও প্রাইম হলে 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