โจทย์: กำหนดเลข n หาจำนวนตัวหารทั้งหมด แล้วดูว่าเป็นเลขคี่หรือคู่
วิธี: หาตัวหารทั้งหมดโดยวนจน sqrt(n) นับคู่ (i, n/i) ถ้า i == n/i นับ 1 ไม่นั้นนับ 2 แล้วเช็ค parity
โค้ดตัวอย่าง (แก้ไขจากต้นฉบับที่ซ้ำซ้อน)
import math
def countDivisors(n):
count = 0
root = int(math.sqrt(n)) + 1
for i in range(1, root):
if n % i == 0:
if n // i == i:
count += 1
else:
count += 2
if count % 2 == 0:
print("Even")
else:
print("Odd")
print("The count of divisor:")
countDivisors(100)
ผลลัพธ์
The count of divisor:
Even

สรุป
เรียนรู้วิธีนับจำนวนตัวหารของเลข และตรวจสอบว่าเป็นคี่หรือคู่: วนจน sqrt(n) นับคู่ตัวหาร