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)
返回是在会有一个素数时使用。
接下来,我们使用了-
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 - // 是地板除法函数,用于从输出中移除可能在解决问题中间得到的整数。
最后,我们在代码中给出一个值,目的是找出偶因子的总和。