Số hoàn hảo là một khái niệm toán học có nguồn gốc từ thời cổ đại và đã thu hút sự quan tâm của các nhà toán học suốt hàng thế kỷ. Được định nghĩa và nghiên cứu bởi các nhà toán học cổ đại như Euclid và Pythagoras, Euclid đã tìm ra cách xây dựng số hoàn hảo từ các ước số của nó, bật mí là số hoàn hảo đầu tiên là 6. Vậy số hoàn hảo Python là gì? Làm thế nào để kiểm tra số hoàn hảo Python? Cùng tìm hiểu trong bài viết dưới đây nhe!
Số hoàn hảo Python (perfect number) là một số tự nhiên mà tổng của tất cả các ước số thực sự của nó (không tính chính nó) bằng chính số đó.
Ví dụ, số hoàn hảo đầu tiên và phổ biến nhất là số 6. Số 6 có các ước số thực sự là 1, 2 và 3, và 1 + 2 + 3 = 6, do đó nó là số hoàn hảo. Các số hoàn hảo khác bao gồm 28, 496, và 8128,..
Để tìm hiểu kĩ hơn về số hoàn hảo và cách kiểm tra số hoàn hảo trong Python, chúng ta sẽ tìm hiểu kĩ hơn về Ước số.
Gọi N là một số nguyên. Danh sách các ước của N là tập hợp các số tự nhiên mà N chia hết cho chúng. Để tìm danh sách này, ta kiểm tra từ 1 đến N, và những số mà N chia hết thì sẽ được thêm vào danh sách ước của N.
Ví dụ: ước số của số 12 là 1, 2, 3, 4, 6, và 12, vì bạn có thể chia 12 cho mỗi trong số các số này mà không có phần dư.
Dưới đây là đoạn chương trình kiểm tra số hoàn hảo trong Python:
def kiem_tra_so_hoan_hao(N):
sum_ước = 0
for i in range(1, N):
if N % i == 0:
sum_ước += i
if sum_ước == N:
return True
else:
return False
# Nhập số nguyên dương N từ người dùng
N = int(input("Nhập một số nguyên dương: "))
if kiem_tra_so_hoan_hao(N):
print(N, "là số hoàn hảo.")
else:
print(N, "không phải là số hoàn hảo.")
Kết quả:
Nhập một số nguyên dương: 6
6 là số hoàn hảo.
Dưới đây là chương trình in ra liệt kê các số hoàn hảo nhỏ hơn n Python:
def kiem_tra_so_hoan_hao(N):
sum_ước = 0
for i in range(1, N):
if N % i == 0:
sum_ước += i
if sum_ước == N:
return True
else:
return False
def tim_cac_so_hoan_hao(n):
so_hoan_hao = []
for i in range(1, n + 1):
if kiem_tra_so_hoan_hao(i):
so_hoan_hao.append(i)
return so_hoan_hao
n = int(input("Nhập n: "))
so_hoan_hao = tim_cac_so_hoan_hao(n)
print("Các số hoàn hảo từ 1 đến", n, "là:", so_hoan_hao)
Kết quả:
Nhập n: 100
Các số hoàn hảo từ 1 đến 100 là: [6, 28]
Như vậy, ICANTECH đã hướng dẫn bạn viết hàm liệt kê các số hoàn hảo nhỏ hơn n.
Dưới đây là chương trình liệt kê các số hoàn hảo có trong danh sách def kiem_tra_so_hoan_hao(N):
sum_ước = 0
for i in range(1, N):
if N % i == 0:
sum_ước += i
return sum_ước == N
def liet_ke_so_hoan_hao_trong_danh_sach(danh_sach):
so_hoan_hao = []
for num in danh_sach:
if kiem_tra_so_hoan_hao(num):
so_hoan_hao.append(num)
return so_hoan_hao
danh_sach = [28, 6, 12, 8, 30, 496, 14, 10, 8128, 7, 15]
so_hoan_hao_trong_danh_sach = liet_ke_so_hoan_hao_trong_danh_sach(danh_sach)
print("Các số hoàn hảo trong danh sách là:", so_hoan_hao_trong_danh_sach)
Kết quả:
Các số hoàn hảo trong danh sách là: [28, 6, 496, 8128]
Như vậy, ICANTECH đã giúp bạn tìm hiểu về số hoàn hảo Python và cách kiểm tra số hoàn hảo. Hi vọng các bạn có thể áp dụng các kiến thức trên vào công việc và học tập. Chúc các bạn thành công!
Nếu bạn đang quan tâm đến học lập trình thì hãy tham khảo ngay các khóa học lập trình Python online tại ICANTECH nhé
Nguồn ảnh: ICANTECH.