查找一个数的奇因数之和,这是一个 Python 程序


在本文中,我们将学习下面给出的问题陈述的解决方案——

问题陈述

给定一个输入 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

所有变量都在全局框架中声明,如下面给出的图中所示——

结论

在本文中,我们学习了解决查找一个数的奇因数之和的方法

更新于: 2019 年 9 月 26 日

589 次浏览

开启你的 职业生涯

完成课程并获得认证

开始
广告