Trong bài viết này, chúng ta sẽ tìm hiểu về giải pháp cho câu lệnh vấn đề được đưa ra bên dưới -
Tuyên bố vấn đề
Cho một đầu vào số n, nhiệm vụ là Tìm tổng các thừa số lẻ của một số.
Ở đây, trước tiên chúng ta cần loại bỏ tất cả các yếu tố chẵn.
Để loại bỏ tất cả các thừa số chẵn, chúng ta chia nhiều lần n cho đến khi nó chia hết cho 2. Sau bước này, chúng ta chỉ nhận được các thừa số lẻ của số.
Dưới đây là cách triển khai -
Ví dụ
import math def sumofoddFactors( n ): #prime factors res = 1 # ignore even factors 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 is a prime number. if n >= 2: res *= (1 + n) return res # main n = 27 print(sumofoddFactors(n))
Đầu ra
41
Tất cả các biến được khai báo trong khung toàn cục như thể hiện trong hình bên dưới -
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu về phương pháp Tìm tổng các thừa số lẻ của một số