Python程序:查找一个数的所有偶数因子的和


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

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

示例 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 开始检查输入数字的因子。

现在,为了检查因子,我们创建了一个范围,正如您所看到的,我们写了math.sqrt。这是 Python 中的一个内置函数,它可以帮助我们返回数字的平方根。

示例

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

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

示例

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

当存在素数时使用 return。

接下来,我们使用了

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

用于删除给出值 1 的 20 值。

N=N//i − // 是地板除法函数,用于从我们可能在解决问题的过程中获得的输出中删除整数。

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

更新于: 2022 年 8 月 23 日

496 次查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告