100 Học Python - Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất
DANH SÁCH TÓM TẮT:
Số hoàn hảo là một số nguyên dương bằng tổng các ước số thực sự của nó (không tính chính nó). Ví dụ, số 6 là số hoàn hảo vì:
Dưới đây là hai cách kiểm tra số hoàn hảo: một cách đơn giản dễ hiểu và một cách tối ưu hơn.
Bài 99 Học Python – Tính Số Fibonacci Hai cách tính và so sánh hiệu suất mới nhất
Duyệt tất cả các số nhỏ hơn số cần kiểm tra và tính tổng các ước số.
def so_hoan_hao_don_gian(n):
tong_uoc = 0
for i in range(1, n):
if n % i == 0:
tong_uoc += i
return tong_uoc == n
# Ví dụ sử dụng
print(so_hoan_hao_don_gian(6)) # Kết quả: True
print(so_hoan_hao_don_gian(28)) # Kết quả: True
Ưu điểm:
Nhược điểm:
Thay vì duyệt tất cả các số từ 1 đến n-1, ta chỉ cần kiểm tra các ước số từ 1 đến và tính tổng cả cặp ước số.
def so_hoan_hao_toi_uu(n):
if n < 2:
return False
tong_uoc = 1
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
tong_uoc += i
if i != n // i:
tong_uoc += n // i
return tong_uoc == n
# Ví dụ sử dụng
print(so_hoan_hao_toi_uu(6)) # Kết quả: True
print(so_hoan_hao_toi_uu(28)) # Kết quả: True
Ưu điểm:
Nhược điểm:
| Phương pháp | Độ phức tạp | Tốc độ thực thi | Bộ nhớ sử dụng |
|---|---|---|---|
| Cách đơn giản | O(n) | Chậm | Thấp |
| Cách tối ưu | O(√n) | Nhanh hơn | Thấp |
Nếu bạn chỉ kiểm tra số nhỏ, cách đơn giản có thể đủ dùng. Nhưng với số lớn, cách tối ưu giúp tiết kiệm thời gian đáng kể. Bạn hãy thử chạy hai đoạn mã trên để tự kiểm chứng nhé!
Khóa học Python online từ cơ bản đến nâng cao
Bạn đang tìm kiếm nguồn tài liệu ôn thi học sinh giỏi Tin học lớp…
Phần 2: Tải ngay 200 Bài lập trình Python có lời giải cơ bản đến…
Tổng Hợp Các Hàm Python "Cốt Lõi" Khi Thi HSG Tỉnh Và Vào 10 Chuyên…
Nếu bạn đang ôn thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang,…
Tổng Hợp 74 Đề Thi Học Sinh Giỏi Tin Học THCS Cấp Tỉnh Có Đáp…
Tổng hợp 75 Đề thi HSG Tin học THCS Python Cấp Tỉnh (Có Code Giải…
This website uses cookies.