เมื่อต้องการพิมพ์ Disarium numbers ทั้งหมดระหว่าง 1 และ 100 ให้รันลูประหว่าง 1 และ 100 และคำนวณความยาวของทุกตัวเลข และกำลังของตำแหน่งคูณกับตัวเลขเอง
หากเท่ากัน ถือว่าเป็น Disarium number
Disarium number คือตัวเลขที่ผลรวมของหลักยกกำลังตำแหน่งของแต่ละหลักเท่ากับตัวเลขเดิม
ตัวอย่าง
def length_calculation(my_val):
len_val = 0
while my_val != 0:
len_val = len_val + 1
my_val = 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 = sum_val + (remaining ** len_fun)
my_num = my_num // 10
len_fun = len_fun - 1
return sum_val
ini_result = 0
print("The disarium numbers between 1 and 100 are : ")
for i in range(1, 101):
ini_result = digit_sum(i)
if ini_result == i:
print(i)
ผลลัพธ์
The disarium numbers between 1 and 100 are : 1 2 3 4 5 6 7 8 9 89
คำอธิบาย
- กำหนดสองเมธอด ใช้หาจำนวนหลักในตัวเลข และหาผลคูณของหลักคูณกับตำแหน่ง
- กำหนด initial result = 0
- ลูปวนตัวเลข 1 ถึง 101 (ไม่รวม 101) หากตัวเลขเท่ากับผลคูณของหลักและตำแหน่ง ถือว่าเป็น Disarium number
- แสดงเป็นเอาต์พุทบนคอนโซล