Tất tần tật về số hoàn hảo mà bạn cần biết và cách kiểm tra số hoàn hảo trong Python

1. Số hoàn hảo là gì?

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ố đó.

Tất tần tật về số hoàn hảo mà bạn cần biết và cách kiểm tra số hoàn hảo trong Python

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,..

1.1. Ước số là gì?

Để 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ư.

1.2. Kiểm tra số hoàn hảo Python

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.

2. Một số bài toán áp dụng kiểm tra số hoàn hảo trong Python

2.1. In ra các số hoàn hảo từ 1 đến n Python

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.

2.2. Tìm và in ra các số hoàn hảo trong danh sách

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]

3. Lời Kết

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.

Link nội dung: https://brightschool.edu.vn/tat-tan-tat-ve-so-hoan-hao-ma-ban-can-biet-va-cach-kiem-tra-so-hoan-hao-trong-python-a25741.html