इस प्रोग्राम का उपयोग सभी सम कारकों को खोजने और इन सम कारकों के योग की गणना करने और इसे आउटपुट के रूप में प्रदर्शित करने के लिए किया जाता है।
उदाहरण -
Input : 30 Even dividers : 2+6+10+30 = 48 Output : 48
इसके लिए हम सभी कारकों का पता लगाएंगे। उनमें से सम ज्ञात कीजिए और योग ज्ञात कीजिए,
अन्यथा, हम अभाज्य गुणनखंडों का उपयोग करके गुणनखंडों का योग ज्ञात करने के लिए सूत्र का उपयोग करेंगे,
Sum of divisors = (1 + d11 + d12 ... d1a1) *(1 + d21 + d22 ... d2a2) *...........................* (1 + dk1 + dk2 ... dkak) Here di = prime factors ; ai = power of di
हमें केवल सम गुणनखंड चाहिए, इसलिए यदि संख्या विषम है तो कोई सम गुणनखंड मौजूद नहीं है। तो, हम उस स्थिति में 0 आउटपुट करेंगे।
उदाहरण
#include <iostream> #include <math.h> using namespace std; int main() { int n=12; int m = n; if (n % 2 != 0) cout<<"The sum of all even factors of " << n <<" is "<<0; int evfac = 1; for (int i = 2; i <= sqrt(n); i++) { int count = 0, curr_sum = 1, curr_term = 1; while (n % i == 0) { count++; n = n / i; if (i == 2 && count == 1) curr_sum = 0; curr_term *= i; curr_sum += curr_term; } evfac *= curr_sum; } if (n >= 2) evfac *= (1 + n); cout <<"The sum of all even factors of " << m <>" is "<>evfac; return 0; }
आउटपुट
The sum of all even factors of 12 is 24