Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python tìm tổng các ước số chẵn của một số


Trong bài viết này, chúng ta sẽ tìm hiểu giải pháp cho bài toán sau:

Đề bài – Cho một số, cần hiển thị tổng của tất cả các ước số chẵn của số đó.

Phương pháp

Kiểm tra xem số có lẻ không, nếu lẻ thì không có ước số chẵn, trả về 0.

Nếu số chẵn, tiến hành tính toán. Tất cả các hạng tử trừ 2^0 (là 1) nhân với nhau tạo ra tổng ước chẵn. Để loại bỏ các ước lẻ, ta bỏ qua 2^0. Lưu ý 2 là số nguyên tố chẵn duy nhất.

Hãy xem triển khai dưới đây:

Ví dụ

# module math
import math

# Trả về tổng tất cả ước số của n
def sumofevenFactors(n):
    # Nếu n lẻ
    if (n % 2 != 0):
        return 0
    # Duyệt
    res = 1
    for i in range(2, int(math.sqrt(n)) + 1):
        # nếu i chia hết n
        count = 0
        curr_sum = 1
        curr_term = 1
        while (n % i == 0):
            count = count + 1
            n = n // i
            # ở đây ta loại bỏ 2^0 = 1. Tất cả các ước khác
            if (i == 2 and count == 1):
                curr_sum = 0
            curr_term = curr_term * i
            curr_sum = curr_sum + curr_term
        res = res * curr_sum
    # khi n là số nguyên tố
    if (n >= 2):
        res = res * (1 + n)
    return res

# main
n = 22
print(sumofevenFactors(n))

Kết quả

24

Kết luận

Trong bài này, chúng ta đã học cách tìm tổng các ước số chẵn của một số.