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

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


Trong bài viết này, chúng ta sẽ học về giải pháp cho bài toán cho trước:

Đề bài

Cho một số đầu vào n, nhiệm vụ là tìm tổng các ước số chẵn của một số.

Ở đây chúng ta trước tiên cần loại bỏ tất cả các ước số lẻ.

Nếu số đầu vào là lẻ, nó không có ước số chẵn nên trả về 0 trực tiếp, ngược lại chúng ta sẽ làm theo cách tiếp cận trong mã dưới đây.

Dưới đây là triển khai:

Ví dụ

import math
# Returns sum of all even factors of n.
def sumofFactors(n):
    # Nếu n là lẻ
    if (n % 2 != 0):
        return 0
    # tất cả ước nguyên tố
    res = 1
    for i in range(2, int(math.sqrt(n)) + 1):
        count = 0
        curr_sum = 1
        curr_term = 1
        while (n % i == 0):
            count = count + 1
            n = n // i
            # ở đây chúng ta loại bỏ 2^0 tức là 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
    # nếu n là số nguyên tố
    if (n >= 2):
        res = res * (1 + n)
    return res
# main
n = 20
print(sumofFactors(n))

Kết quả

36

Tất cả biến được khai báo trong khung toàn cục như hình dưới đây:

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

Kết luận

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