इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे -
समस्या कथन
किसी संख्या इनपुट n को देखते हुए, कार्य किसी संख्या के सम गुणनखंडों का योग ज्ञात करना है।
यहां हमें सबसे पहले सभी विषम कारकों को खत्म करना होगा।
यदि संख्या इनपुट विषम है, तो इसका कोई सम कारक नहीं है, सीधे शून्य लौटाता है, अन्यथा, हम नीचे दिए गए कोड में दृष्टिकोण का पालन करेंगे
नीचे कार्यान्वयन है -
उदाहरण
import math # Returns sum of all even factors of n. def sumofFactors(n) : # If n is odd if (n % 2 != 0) : return 0 #all prime factors res = 1 for i in range(2, (int)(math.sqrt(n)) + 1) : 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 # if n is prime number if (n >= 2) : res = res * (1 + n) return res # main n = 20 print(sumofFactors(n))
आउटपुट
36
सभी चर वैश्विक फ्रेम में घोषित किए गए हैं जैसा कि नीचे दिए गए चित्र में दिखाया गया है -
निष्कर्ष
इस लेख में, हमने किसी संख्या के सम गुणनखंडों का योग ज्ञात करने की विधि के बारे में सीखा