โจทย์: กำหนดเลข n หาผลรวมของเฉพาะตัวประกอบคี่
ขั้นตอน: หาร n ด้วย 2 จนหมด เพื่อกำจัดตัวประกอบคู่ แล้วหาผลรวมตัวประกอบที่เหลือ (คี่)
โค้ดตัวอย่าง
import math
def sumofoddFactors(n):
res = 1
# กำจัดตัวประกอบคู่
while n % 2 == 0:
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 //= i
curr_term *= i
curr_sum += curr_term
res *= curr_sum
# ถ้า n เหลือเป็นเฉพาะ > 2
if n >= 2:
res *= (1 + n)
return res
print(sumofoddFactors(27))
ผลลัพธ์
41

สรุป
เรียนรู้วิธีหาผลรวมเฉพาะตัวประกอบคี่ของเลข: กำจัดตัวคู่ด้วยการหาร 2 แล้วหาผลรวมตัวคี่ที่เหลือ