Perfect number คือจำนวนเต็มบวกที่เท่ากับผลรวมของ proper divisors ตัวเลข perfect น้อยที่สุดคือ 6 (1+2+3)
หา perfect numbers ในช่วงได้โดยทดสอบเงื่อนไขทุกตัวเลขในช่วง
ตัวอย่าง
def print_perfect_nums(start, end):
for i in range(start, end + 1):
sum1 = 0
for x in range(1, i):
# ตรวจสอบว่าเป็น divisor ถ้าใช่บวกใน sum
if (i % x == 0):
sum1 = sum1 + x
if (sum1 == i):
print(i)
print_perfect_nums(1, 300)
ผลลัพธ์
6 28