Python 程式列印 1 到 100 之間的所有迪斯阿里姆數
當需要列印 1 到 100 之間的所有迪斯阿里姆數時,可以在 1 到 100 之間執行一個簡單的迴圈,並計算每個數字的長度,以及位置的冪乘以數字本身。
如果它們相等,則認為它是一個迪斯阿里姆數。
迪斯阿里姆數是指其各位數字分別乘以其所在位置的冪之和等於該數字本身的數。
以下是對此的演示 -
示例
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
解釋
- 定義了兩種方法,用於查詢數字中的數字個數,以及獲取數字與其位置相乘的積。
- 將初始結果賦值為 0。
- 迴圈迭代 1 到 101 之間的數字(不包括 101),如果數字與數字中各位數字與其位置的乘積相同,則將其視為迪斯阿里姆數。
- 這將在控制檯上顯示為輸出。
廣告