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 − // 是地板除法函数,用于从我们可能在解决问题的过程中获得的输出中删除整数。
最后,我们在代码中给出了一个值,目的是找出偶数因子的和。