在 Python 程序中查找数字的偶数因子之和

programmingpythonserver side programming

让我们从解释如何查找数字的偶数因子之和开始我们的文章,但什么是因子?

因子是完全除以给定数字而余数为零的数字,或者我们可以说因子是数字的倍数。

示例 1 - 如果我们给定一个数字 60

60(6*10=2*3*2*5)的因子是 2、5 和 3

但根据问题,我们必须找出偶数因子之和,因此在上面给出的例子中,偶数因子只有 2。

此外,如果给定的数字是奇数,则因子将不是偶数数字。

示例 2 − 55 是给定的数字

它的因数是 5 和 11,我们可以看到这两个因数都不是偶数,因此奇数不会有偶数因数。

现在我们知道 Python 是一种高级语言,因此它具有专为解决数学函数而设计的模块,而我们的问题是处理数学问题,我们必须在代码中导入和添加此类模块。

因此,在编写代码之前,让我们看看根据给出的问题,我们可以在代码中应用哪些概念。这种方法将帮助我们找到最合适的函数并改进我们解决问题的方法。

我们应该采用什么方法,为什么?

由于我们的问题完全基于数学工具,因此我们的第一种方法应该是找出有助于我们完成代码的工具。因此,我们将导入 math 模块,该模块将允许我们使用函数。

如果有人仍然怀疑如果数字是奇数,我们会怎么做,那么为了解决这个问题,我们的下一个方法应该是考虑一个语句,它将帮助我们做出选择,或者我们可以说,为我们做出决定,并且根据我们的需要,我们的工作可以使用 IF 语句变得简单,然后根据用途使用 FOR 和 WHILE 语句。现在让我们编写程序。

求一个数字的偶数因数之和

示例

import math def sum_EF(N) : if (N % 2 != 0) : return 0 ut = 1 for i in range(2, (int)(math.sqrt(N)) + 1) : num = 0 sum_n = 1 num_t = 1 while (N % i == 0) : num= num + 1 N = N // i if (i == 2and num == 1) : sum_n = 0 num_t = num_t * i sum_n = sum_n + num_t ut = ut * sum_n if (N >= 2) : ut = ut * (1 + N) return ut N = 40 print(sum_EF(N))

输出

None

既然我们已经为问题编写了代码,让我们从一开始就了解一些关键点。我们添加到代码中的第一件事就是导入了 MATH 模块。

接下来重要的事情是找出所要求的数字是奇数还是偶数。因为我们知道计算机不是一个智能系统,所以我们必须引导它,这就是为什么我们首先编写代码来检查数字是奇数还是偶数。

示例 

if (N % 2 != 0) :
return 0

这里我们使用 IF – 语句进行检查,因此如果数字为奇数,它将返回代码为零,否则继续。

现在继续使用代码,假设我们输入了一个偶数,现在我们的工作是从 1 开始检查输入数字的因数。

现在为了检查因数,我们创建了一个范围,如您所见,我们已经编写了数学.sqrt 。这是 python 中内置的函数,可帮助我们返回数字的平方根。

示例 

for i in range(2, (int)(math.sqrt(N)) + 1)

接下来是从数字的因数中删除素数(只能被自身整除的数字,例如 1、3、5、7 等),因为所有奇数都不是素数,但所有素数都是奇数。

示例 

if (N >= 2) :
ut = ut * (1 + N)

当有素数时返回它。

接下来,我们使用了

if (i == 2 and num == 1) :
      num_sm = 0
   num_tm = num_tm * i
   num_sm = num_sm + num_tm
ut = ut * num_sm

用于删除 20 值,从而得到值 1。

N=N//i − // 是用于从输出中删除整数的向下除法函数,我们可能会在解决问题的过程中得到这些整数。

最后,我们在代码中给出了一个值,目的是找出偶数因子的总和。


相关文章