इस भाग में हम देखेंगे कि कैसे हम किसी संख्या के सभी सम अभाज्य गुणनखंडों का योग कुशल तरीके से प्राप्त कर सकते हैं। एक संख्या है मान लीजिए n =480, हमें इसके सभी गुणनखंड प्राप्त करने हैं। 480 के अभाज्य गुणनखंड 2, 2, 2, 2, 2, 3, 5 हैं। सभी सम गुणनखंडों का योग 2+2+2+2+2 =10 है। इस समस्या को हल करने के लिए हमें इस नियम का पालन करना होगा। -
- जब संख्या 2 से विभाज्य हो, तो उन्हें योग में जोड़ें, और संख्या को 2 से बार-बार विभाजित करें।
- अब संख्या विषम होनी चाहिए। इसलिए हमें कोई भी गुणनखंड नहीं मिलेगा जो सम हो। तो बस उन कारकों पर ध्यान न दें।
आइए एक बेहतर विचार प्राप्त करने के लिए एल्गोरिथम देखें।
एल्गोरिदम
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; //reduce n by dividing this by 2 } return sum; } 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