用Python语言写一个水仙花数
时间: 2024-03-06 10:24:10 浏览: 45
当一个 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 以内的水仙花数。你也可以根据需要修改范围。
相关问题
利用python语言写出水仙花数
水仙花数(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
for i in range(1000, 10000):
a = i // 1000
b = (i // 100) % 10
c = (i // 10) % 10
d = i % 10
if i == a**3 + b**3 + c**3 + d**3:
print(i)
```
运行结果为:
```
1. 1634
2. 8208
3. 9474
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)