इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे।
समस्या कथन
हमें एक संख्या दी गई है, हमें उस संख्या के सभी सम गुणनखंडों का योग प्रदर्शित करना है।
दृष्टिकोण
हम जांचते हैं कि क्या संख्या विषम है, तो कोई सम गुणनखंड नहीं हैं, इसलिए 0 वापस करें।
यदि संख्या सम है, तो हम गणना के माध्यम से जाते हैं। 2^0 को छोड़कर अन्य सभी पद मिलकर एक सम गुणनखंड योग उत्पन्न करते हैं।
सम गुणनखंड में सभी विषम संख्याओं को हटाने के लिए, हम 2^0 यानी 1 को अनदेखा करते हैं। इस चरण के बाद, हमें केवल सम गुणनखंड मिलते हैं। ध्यान दें कि 2 हमारे लिए उपलब्ध एकमात्र सम अभाज्य संख्या है।
उदाहरण
# मैथ मॉड्यूल
import math
# n के सभी गुणनखंडों का योग लौटाता है
def sumofevenFactors(n):
# यदि n विषम है
if (n % 2 != 0):
return 0
# ट्रैवर्सल
res = 1
for i in range(2, (int)(math.sqrt(n)) + 1):
# यदि i n को विभाजित करता है
count = 0
curr_sum = 1
curr_term = 1
while (n % i == 0):
count = count + 1
n = n // i
# यहां हम 2^0 यानी 1 को हटाते हैं। अन्य सभी गुणनखंड
if (i == 2 and count == 1):
curr_sum = 0
curr_term = curr_term * i
curr_sum = curr_sum + curr_term
res = res * curr_sum
# जब n एक अभाज्य संख्या हो
if (n >= 2):
res = res * (1 + n)
return res
# मुख्य
n = 22
print(sumofevenFactors(n))
आउटपुट
24
निष्कर्ष
इस लेख में हमने सीखा कि हम किसी संख्या के सम गुणनखंडों का योग कैसे ज्ञात कर सकते हैं।