Python代码实现水仙花数(阿姆斯特朗数)查找
使用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)
代码说明:
- 使用
input()函数获取用户输入的区间起始数和结束数。 - 使用
range()函数生成指定区间内的所有整数。 - 使用循环语句遍历每个数字,并进行以下操作:
- 将数字转换为字符串,以便逐位处理。
- 获取数字的位数。
- 使用循环语句遍历每个数字的每一位,并计算其 n 次方之和。
- 判断数字的 n 次方之和是否等于该数字本身,如果是,则输出该数字。
代码示例:
若用户输入的起始数为 1,结束数为 1000,则程序会输出以下结果:
1
2
3
4
5
6
7
8
9
153
370
371
407
注意:
- 代码中的起始数和结束数可以根据需要进行修改。
- 水仙花数的定义是其各位数字的 n 次方之和等于该数本身,其中 n 是该数字的位数。
- 以上代码仅供参考,可以根据需要进行修改和优化。
原文地址: http://www.cveoy.top/t/topic/bnfT 著作权归作者所有。请勿转载和采集!