এই সেকশনে আমরা দেখব কিভাবে একটি সংখ্যার সব জোড় প্রাইম ফ্যাক্টরের যোগফল দক্ষতার সাথে বের করতে হয়। ধরি একটি সংখ্যা n = 480, এর সব ফ্যাক্টর বের করতে হবে। 480-এর প্রাইম ফ্যাক্টরগুলো হল 2, 2, 2, 2, 2, 3, 5। সব জোড় ফ্যাক্টরের যোগফল = 2+2+2+2+2 = 10। এই সমস্যাটি সমাধান করতে নিচের নিয়ম মেনে চলতে হবে:
- যখন সংখ্যা ২ দিয়ে বিভাজ্য হয়, সেগুলো যোগফলে যোগ করুন এবং সংখ্যাকে ২ দিয়ে বারবার ভাগ করুন।
- এখন সংখ্যাটি বিজোড় হবে। তাই আর কোনো জোড় ফ্যাক্টর পাওয়া যাবে না। সেগুলো উপেক্ষা করুন।
এলগরিদম
printPrimeFactors(n):
begin
sum := 0
while n is divisible by 2, do
sum := sum + 2
n := n / 2
done
end
উদাহরণ কোড
#include <iostream>
using namespace std;
int sumEvenFactors(int n) {
int i, sum = 0;
while (n % 2 == 0) {
sum += 2;
n = n / 2; // ২ দিয়ে ভাগ করে n কমান
}
return sum;
}
int main() {
int n;
cout << "Enter a number: ";
cin >> n;
cout << "Sum of all even prime factors: " << sumEvenFactors(n);
}
আউটপুট
Enter a number: 480 Sum of all even prime factors: 10