इस खंड में, हम देखेंगे कि किसी संख्या के सभी सम अभाज्य गुणनखंडों का योग कुशल तरीके से कैसे प्राप्त करें। मान लीजिए एक संख्या n=480 है, हमें इसके सभी गुणनखंड प्राप्त करने हैं। 480 के अभाज्य गुणनखंड 2, 2, 2, 2, 2, 3, 5 हैं। सभी सम गुणनखंडों का योग 2+2+2+2+2 = 10 है। इस समस्या को हल करने के लिए, हमें इस नियम का पालन करना होगा:
- जब संख्या 2 से विभाज्य हो, तो उन्हें योग में जोड़ें, और संख्या को 2 से बार-बार विभाजित करें।
- अब संख्या विषम होनी चाहिए। इसलिए हमें कोई भी गुणनखंड नहीं मिलेगा जो सम हो। फिर बस उन गुणनखंडों को अनदेखा करें।
एल्गोरिदम
printPrimeFactors(n):
sum := 0
while n 2 से विभाज्य है, करें
sum := sum + 2
n := n / 2
किया
end
C++ उदाहरण
#include <iostream>
using namespace std;
int sumEvenFactors(int n) {
int i, sum = 0;
while (n % 2 == 0) {
sum += 2;
n = n / 2;
}
return sum;
}
int main() {
int n;
cout << "Enter a number: ";
cin >> n;
cout << "Sum of all even prime factors: " << sumEvenFactors(n);
return 0;
}
आउटपुट
Enter a number: 480 Sum of all even prime factors: 10