Menu
CoddyTech

Armstrong Number

Người mớiToán và mô phỏngpython iconjava iconcpp iconc iconjs icon+10

Một số nguyên dương là số Armstrong khi nó bằng tổng các chữ số của chính nó, mỗi chữ số được nâng lên lũy thừa bằng số chữ số của số đó. 153 có ba chữ số và 1^3 + 5^3 + 3^3 = 153, nên nó là số Armstrong. Hãy viết một hàm (function) nhận n và trả về true nếu đó là số Armstrong, còn không thì trả về false.

Hàm

isArmstrong(n: integer) → boolean
ninteger
số nguyên dương cần kiểm tra
Trả vềboolean
đúng khi n bằng tổng các chữ số của nó, mỗi chữ số được nâng lên lũy thừa bằng số chữ số

Ràng buộc

  • 1 ≤ n ≤ 109

Ví dụ

Đầu vào
n = 153
Đầu ra
true
Giải thích
153 có 3 chữ số, vì vậy mỗi chữ số được nâng lên lũy thừa 3: 1 + 125 + 27 = 153. Tổng bằng chính số đó, nên đáp án là true.
challenge icon

Câu hỏi mở rộng

Chỉ có 31 số Armstrong nằm trong khoảng từ 1 đến 10^9. Bạn có thể liệt kê tất cả mà không cần kiểm tra từng số trong một tỷ số không?

Đặt lại code
def isArmstrong(n):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

n = 153

Đầu ra mong đợi

true