(3)编写程序,打印1000-9999范围内所有的玫瑰花数。玫瑰花数是指一个四位数,它的各位数字的4次方之和等于该数本身。
时间: 2024-06-06 15:08:16 浏览: 7
for i in range(1000, 10000):
a = i // 1000
b = i // 100 % 10
c = i // 10 % 10
d = i % 10
if i == a**4 + b**4 + c**4 + d**4:
print(i)
相关问题
用C语言编写程序,打印1000-9999范围内所有的玫瑰花数。玫瑰花数是指一个四位数,它的各位数字的4次方之和等于该数本身。
#include <stdio.h>
int main() {
int num, digit1, digit2, digit3, digit4;
for(num = 1000; num <= 9999; num++) {
digit1 = num / 1000;
digit2 = (num / 100) % 10;
digit3 = (num / 10) % 10;
digit4 = num % 10;
if(num == digit1*digit1*digit1*digit1 + digit2*digit2*digit2*digit2 + digit3*digit3*digit3*digit3 + digit4*digit4*digit4*digit4) {
printf("%d\n", num);
}
}
return 0;
}
编写程序,找1000-10000之间的玫瑰花数(是个 四位数,每位数的4次方之和等于这个数,如:1634)
玫瑰花数指的是一个四位数,每位数的4次方之和等于这个数。我们可以编写程序来查找1000-10000之间的玫瑰花数。
具体思路如下:
1. 从1000开始循环到10000,对于每个数,分解出它的千位、百位、十位和个位;
2. 计算每个位数的4次方并求和,判断是否等于该数本身;
3. 如果等于该数本身,则输出该数。
以下是实现代码:
```python
for num in range(1000, 10000):
# 分解出千位、百位、十位和个位
a = num // 1000
b = num // 100 % 10
c = num // 10 % 10
d = num % 10
# 计算每个位数的4次方并求和
sum = a**4 + b**4 + c**4 + d**4
# 判断是否等于该数本身
if sum == num:
print(num)
```
输出结果为:
```
1634
8208
```
因此,1000-10000之间的玫瑰花数有两个,分别为1634和8208。