इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे -
समस्या कथन
किसी संख्या इनपुट n को देखते हुए, कार्य किसी संख्या के विषम गुणनखंडों का योग ज्ञात करना है।
यहां हमें सबसे पहले सभी सम कारकों को खत्म करने की जरूरत है।
सभी सम गुणनखंडों को हटाने के लिए, हम बार-बार n को 2 से विभाज्य होने तक विभाजित करते हैं। इस चरण के बाद, हमें केवल संख्या के विषम गुणनखंड मिलते हैं।
नीचे कार्यान्वयन है -
उदाहरण
import math def sumofoddFactors( n ): #prime factors res = 1 # ignore even factors while n % 2 == 0: n = n // 2 for i in range(3, int(math.sqrt(n) + 1)): count = 0 curr_sum = 1 curr_term = 1 while n % i == 0: count+=1 n = n // i curr_term *= i curr_sum += curr_term res *= curr_sum # n is a prime number. if n >= 2: res *= (1 + n) return res # main n = 27 print(sumofoddFactors(n))
आउटपुट
41
सभी चर वैश्विक फ्रेम में घोषित किए गए हैं जैसा कि नीचे दिए गए चित्र में दिखाया गया है -
निष्कर्ष
इस लेख में, हमने किसी संख्या के विषम गुणनखंडों का योग ज्ञात करने की विधि के बारे में सीखा