打印所有水仙花数。所谓水仙花数,是指一个三位的整数,其各位数字的 立方和等于该数本身。 例如:153是水仙花数,因为153=1**3+5**3+3**3
时间: 2023-10-21 07:07:56 浏览: 76
下面是Python代码实现打印所有的水仙花数:
for num in range(100, 1000):
# 分离出百位、十位、个位上的数字
digit1 = num // 100
digit2 = (num // 10) % 10
digit3 = num % 10
# 判断是否为水仙花数
if num == digit1**3 + digit2**3 + digit3**3:
print(num)
输出结果:
153
370
371
407
相关问题
输出所有“水仙花数”。所谓“水仙花数”是指一个三位数 其各位数字立方和等于该数本身
"水仙花数"是指一个三位正整数,其百位、十位和个位数字分别立方后相加得到的结果正好等于原数本身。例如,153是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
寻找所有的水仙花数的一种常见算法是遍历从100到999之间的每个数,计算它的各个位的立方和,如果和等于原数,则这个数就是水仙花数。以下是Python的一个简单示例:
def is_lychrel(num):
digits = [int(digit) for digit in str(num)]
sum_of_cubes = sum(i ** 3 for i in digits)
if num == sum_of_cubes:
return False
for _ in range(100): #最多尝试100次翻转,超过则认为不是水仙花数
digits.sort() #将数字降序排列
num = int(''.join(str(digit) for digit in digits))
if num == sum_of_cubes:
return True
else:
sum_of_cubes = sum(i ** 3 for i in digits)
return False
# 找出所有的水仙花数
for num in range(100, 1000):
if is_lychrel(num):
print(num)
输入一个三位整数, 判断其是否为水仙花数。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。如:153 是一个水仙花数,因为其满足 153=13+53+33。
好的,以下是 Python 代码实现:
num = input("请输入一个三位整数:") # 获取用户输入的数字
if len(num) != 3 or not num.isdigit(): # 判断输入的数字是否为三位整数
print("输入不合法!")
else:
num = int(num)
a = num // 100 # 获取百位数字
b = num % 100 // 10 # 获取十位数字
c = num % 10 # 获取个位数字
if a**3 + b**3 + c**3 == num: # 判断是否为水仙花数
print(num, "是水仙花数!")
else:
print(num, "不是水仙花数!")
你可以尝试输入不同的三位整数来测试代码的正确性。
相关推荐
















