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ố lẻ 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ố lẻ 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ố chẵn.

Để loại bỏ tất cả ước số chẵn, chúng ta liên tục chia n cho đến khi nó chia hết cho 2. Sau bước này, chúng ta chỉ nhận được các ước số lẻ của số đó.

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

Ví dụ

import math
def sumofoddFactors(n):
    # ước nguyên tố
    res = 1
    # bỏ qua ước chẵn
    while n % 2 == 0:
        n = n // 2
    for i in range(3, int(math.sqrt(n) + 1)):
        count = 0
        curr_sum = 1
        curr_term = 1
        while n % i == 0:
            count += 1
            n = n // i
            curr_term *= i
            curr_sum += curr_term
        res *= curr_sum
    # n là số nguyên tố.
    if n >= 2:
        res *= (1 + n)
    return res
# main
n = 27
print(sumofoddFactors(n))

Kết quả

41

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ố lẻ 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ố lẻ của một số.