Số Armstrong, còn được gọi là số Narcissistic, là một loại số tự nhiên đặc biệt trong toán học. Một số được gọi là Số Armstrong nếu tổng lũy thừa của các chữ số của nó bằng chính nó. Trong bài viết này, chúng ta sẽ tìm hiểu về Số Armstrong, cách kiểm tra chúng bằng Python và viết một chương trình để tìm các số Armstrong trong một khoảng số cho trước.
Số Armstrong là gì?
Một số Armstrong là một số tự nhiên mà tổng lũy thừa của các chữ số của nó bằng chính nó. Một số Armstrong N với N chữ số thỏa mãn điều kiện:
N = (d_1^N + d_2^N + … + d_N^N)
Ví dụ về các số Armstrong là 1, 153, 370, 371 và 407. Hãy xem xét số 153:
(1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153)
Điều này chứng minh rằng 153 là một số Armstrong.
Kiểm tra Số Armstrong trong Python
Để kiểm tra xem một số có phải là Số Armstrong hay không, chúng ta cần thực hiện một số bước:
- Chia số thành các chữ số riêng lẻ.
- Tính lũy thừa của từng chữ số theo lũy thừa của số chữ số.
- Tính tổng các lũy thừa này.
- So sánh tổng với số ban đầu. Nếu chúng bằng nhau, số đó là Số Armstrong.
Dưới đây là một ví dụ về cách kiểm tra Số Armstrong bằng Python:
def is_armstrong_number(number): |
Kết quả sẽ là danh sách các số Armstrong trong khoảng từ 1 đến 10000.
1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474, |
Hiệu suất và tối ưu hóa
Khi kiểm tra các số lớn, cách tính lũy thừa và tổng có thể gây ra hiệu năng kém. Để tối ưu hóa chương trình, bạn có thể sử dụng một số cách:
- Sử dụng danh sách chứa các chữ số thay vì chuyển số thành chuỗi.
- Tính lũy thừa cho từng chữ số và lưu trữ chúng, sau đó tính tổng cuối cùng.
Dưới đây là một phiên bản tối ưu hóa của hàm kiểm tra Số Armstrong:
def is_armstrong_number_optimized(number): |
Phiên bản này sẽ thực hiện tốt hơn đối với các số lớn hơn.
Kết luận
Trên đây Kiyoshi đã hướng dẫn bạn về cách kiểm tra và in ra các số Armstrong rồi. Việc nắm vững các khái niệm này sẽ giúp bạn xử lý nhiều loại vấn đề toán học khác nhau trong lập trình Python.
URL Link
HOME › python cơ bản - lập trình python cho người mới bắt đầu>>05. số trong python