Khi cần in tất cả số Disarium từ 1 đến 100, chạy vòng lặp 1..100, tính độ dài mỗi số, lũy thừa vị trí nhân với số.
Nếu bằng nhau => Disarium.
Số Disarium: tổng chữ số lũy thừa vị trí tương ứng bằng chính số đó.
Minh họa:
Ví dụ
def length_calculation(my_val):
len_val = 0
while my_val != 0:
len_val += 1
my_val //= 10
return len_val
def digit_sum(my_num):
remaining = sum_val = 0
len_fun = length_calculation(my_num)
while my_num > 0:
remaining = my_num % 10
sum_val += remaining ** len_fun
my_num //= 10
len_fun -= 1
return sum_val
ini_result = 0
print("Các số Disarium từ 1 đến 100: ")
for i in range(1, 101):
ini_result = digit_sum(i)
if ini_result == i:
print(i)
Đầu ra
Các số Disarium từ 1 đến 100: 1 2 3 4 5 6 7 8 9 89
Giải thích
- Định nghĩa hai phương thức: tính số chữ số, và tích chữ số lũy thừa vị trí.
- Gán kết quả ban đầu = 0.
- Lặp 1..101, nếu số bằng tích chữ số và vị trí => Disarium.
- Hiển thị đầu ra.