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),如果数字与数字中各位数字与其位置的乘积相同,则将其视为迪斯阿里姆数。
  • 这将在控制台上显示为输出。

更新于: 2021年3月12日

1K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告