利用python语言写出水仙花数
时间: 2023-10-19 10:11:48 浏览: 43
水仙花数(Narcissistic number)也叫自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。
例如,153是一个水仙花数,因为1^3+5^3+3^3=153。
以下是用Python语言实现水仙花数的代码:
```python
for num in range(100, 1000):
# 计算num的每个位上的数字
digit1 = num // 100 # 百位数
digit2 = (num // 10) % 10 # 十位数
digit3 = num % 10 # 个位数
# 判断是否为水仙花数
if num == digit1**3 + digit2**3 + digit3**3:
print(num)
```
输出结果:
```
153
370
371
407
```
相关问题
python语言打印水仙花数
要打印出Python语言中的水仙花数,可以使用以下代码:
```python
lower = 100 # 下限
upper = 999 # 上限
for num in range(lower, upper + 1):
# 求每个数字的位数
order = len(str(num))
# 初始化求和变量
sum = 0
# 求每个位数上的数字的立方和
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** order
temp //= 10
# 如果与原数字相等,则为水仙花数
if num == sum:
print(num)
```
这段代码将会打印出所有的水仙花数,即满足条件的三位数,其各个位数字的立方和等于该数本身。
用Python语言写一个水仙花数
当一个 n 位正整数等于其各位数字的 n 次方之和时,我们称其为水仙花数。例如,153 = 1^3 + 5^3 + 3^3 是一个三位水仙花数。
下面是使用 Python 语言编写的水仙花数代码:
```python
def is_narcissistic(num):
# 转换为字符串并计算位数
n = len(str(num))
# 初始化求和变量
sum = 0
# 计算各位数字的 n 次方之和
for digit in str(num):
sum += int(digit) ** n
# 判断是否为水仙花数
return sum == num
# 打印 1000 以内的水仙花数
for i in range(1000):
if is_narcissistic(i):
print(i)
```
该程序会打印出所有 1000 以内的水仙花数。你也可以根据需要修改范围。