输出水仙花数.输入一个正整数n3到7
时间: 2023-09-18 15:02:04 浏览: 109
水仙花数是指一个n位正整数,其各位数字的n次方之和等于该数本身。
根据题意,我们需要输出n=3到7的水仙花数。
首先,我们可以编写一个判断一个数是否是水仙花数的函数,如下所示:
def is_narcissistic_number(num):
n = len(str(num)) # 获取num的位数
sum_of_digits = 0 # 存储各位数字的n次方之和
temp = num
while temp > 0:
digit = temp % 10 # 取出个位数字
sum_of_digits += digit ** n # 计算各位数字的n次方之和
temp //= 10 # 去除个位数字
return sum_of_digits == num
接下来,我们可以编写一个函数,用于输出指定范围内的水仙花数:
def output_narcissistic_numbers(start, end):
for num in range(start, end + 1):
if is_narcissistic_number(num):
print(num)
最后,我们可以调用该函数,输出n=3到7的水仙花数:
output_narcissistic_numbers(100, 999)
output_narcissistic_numbers(1000, 9999)
output_narcissistic_numbers(10000, 99999)
output_narcissistic_numbers(100000, 999999)
output_narcissistic_numbers(1000000, 9999999)
以上代码可以输出范围在100到9999999之间的水仙花数。注意,该代码假设输入的n为3到7之间的整数。如果输入其他的n值,需要相应地调整函数调用的范围。
阅读全文