Liệt kê các số hoàn hảo nhỏ hơn n với Python

Thầy giáo dạy lập trình

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.

One thought on “Liệt kê các số hoàn hảo nhỏ hơn n với Python

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *