Số hoàn hảo là một số tự nhiên mà tổng các ước số của nó (không tính chính nó) bằng chính nó. Ví dụ, số 6 là một số hoàn hảo vì tổng các ước số của nó (1, 2, 3) bằng 6. Dưới đây là một số số hoàn hảo đầu tiên:
6, 28, 496, 8128, 33550336, 8589869056, 137438691328, 2305843008139952128, …
Dưới đây là một đoạn mã Python để liệt kê tất cả các số hoàn hảo nhỏ hơn một số nguyên dương n cho trước:
def is_perfect_number(num):
divisors = []
for i in range(1, num):
if num % i == 0:
divisors.append(i)
if sum(divisors) == num:
return True
else:
return False
def list_perfect_numbers(n):
perfect_numbers = []
for num in range(1, n):
if is_perfect_number(num):
perfect_numbers.append(num)
return perfect_numbers
n = int(input("Nhập một số nguyên dương n: "))
perfect_numbers = list_perfect_numbers(n)
print("Các số hoàn hảo nhỏ hơn", n, "là:", perfect_numbers)
Bạn có thể chạy đoạn mã này và nhập một số nguyên dương n để liệt kê tất cả các số hoàn hảo nhỏ hơn n. Đoạn mã sẽ tìm và in ra danh sách các số hoàn hảo từ 1 đến n-1.