使用Python代码查找指定区间内的水仙花数

水仙花数(也称阿姆斯特朗数)是指一个 n 位正整数,其各位数字的 n 次方之和等于该数本身。例如,3^3 + 7^3 + 0^3 = 370。

以下代码使用循环语句和判断语句来查找指定区间内的水仙花数:

start = int(input('请输入区间的起始数:'))
end = int(input('请输入区间的结束数:'))

for num in range(start, end + 1):
    # 将数字转换为字符串,以便处理每一位数字
    num_str = str(num)
    # 获取数字的位数
    n = len(num_str)
    # 初始化累加和
    sum = 0
    
    # 计算每一位数字的 n 次方之和
    for digit in num_str:
        sum += int(digit) ** n
    
    # 判断是否为水仙花数
    if sum == num:
        print(num)

代码说明:

  1. 使用 input() 函数获取用户输入的区间起始数和结束数。
  2. 使用 range() 函数生成指定区间内的所有整数。
  3. 使用循环语句遍历每个数字,并进行以下操作:
    • 将数字转换为字符串,以便逐位处理。
    • 获取数字的位数。
    • 使用循环语句遍历每个数字的每一位,并计算其 n 次方之和。
    • 判断数字的 n 次方之和是否等于该数字本身,如果是,则输出该数字。

代码示例:

若用户输入的起始数为 1,结束数为 1000,则程序会输出以下结果:

1
2
3
4
5
6
7
8
9
153
370
371
407

注意:

  • 代码中的起始数和结束数可以根据需要进行修改。
  • 水仙花数的定义是其各位数字的 n 次方之和等于该数本身,其中 n 是该数字的位数。
  • 以上代码仅供参考,可以根据需要进行修改和优化。
Python代码实现水仙花数(阿姆斯特朗数)查找

原文地址: http://www.cveoy.top/t/topic/bnfT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录