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 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告