इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे।
समस्या कथन - हमें एक संख्या दी गई है, हमें संख्या के सभी सम गुणनखंडों का योग प्रदर्शित करना होगा।
दृष्टिकोण
हम जाँचते हैं कि क्या संख्या विषम है, फिर कोई सम गुणनखंड नहीं हैं, इसलिए 0 लौटाएँ।
यदि संख्या सम है, तो हम गणना के माध्यम से जाते हैं। 20 को छोड़कर अन्य सभी पद एक सम गुणनखंड योग उत्पन्न करने के लिए गुणा करते हैं।
सम गुणनखंड में सभी विषम संख्याओं को हटाने के लिए, हम 20 की उपेक्षा करते हैं जो कि 1 है। इस चरण के बाद, हमें केवल सम गुणनखंड मिलते हैं। ध्यान दें कि हमारे लिए केवल 2 ही सम अभाज्य उपलब्ध है।
आइए अब नीचे दिए गए कार्यान्वयन को देखें-
उदाहरण
# math module import math # Returns sum of all # factors of n. def sumofevenFactors(n) : # If n is odd if (n % 2 != 0) : return 0 # Traversal res = 1 for i in range(2, (int)(math.sqrt(n)) + 1) : # if i divides n count = 0 curr_sum = 1 curr_term = 1 while (n % i == 0) : count= count + 1 n = n // i # here we remove the # 2^0 that is 1. All # other factors if (i == 2 and count == 1) : curr_sum = 0 curr_term = curr_term * i curr_sum = curr_sum + curr_term res = res * curr_sum # when n is a prime number if (n >= 2) : res = res * (1 + n) return res # main n = 22 print(sumofevenFactors(n))
आउटपुट
24
जैसा कि ऊपर दिए गए चित्र में दिखाया गया है, सभी चर और कार्य वैश्विक दायरे में घोषित किए गए हैं।
निष्कर्ष
इस लेख में, हमने सीखा है कि हम किसी संख्या के सम गुणनखंडों का योग कैसे ज्ञात कर सकते हैं।