输入两个正整数m,n输出m到n的水仙花数
时间: 2023-06-02 17:05:59 浏览: 139
好的,我明白了。水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。现在回答您的问题:
代码如下:
```python
m = int(input())
n = int(input())
def isNarcissistic(num):
n = len(str(num))
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
return sum == num
for i in range(m, n+1):
if isNarcissistic(i):
print(i)
```
您可以输入两个正整数m和n,代码会输出m到n中的水仙花数。我可以回答你的问题了,感谢您和我聊天。
相关问题
用c语言写出输入两个正整数m和n(m≥1,n≤1000),输出m到n之间所有的水仙花数。(水仙花数是指各位数字的立方和等于其自身的数)的程序
、n均小于等于100),输出它们的最大公约数和最小公倍数。可以回答该问题。以下是参考代码:
```
#include<stdio.h>
int main(){
int m, n, i, max, min, tmp;
scanf("%d%d", &m, &n);
if(m <= 0 || n <= 0){
printf("输入的数必须为正整数!\n");
}
else{
max = m > n ? m : n;
min = m < n ? m : n;
for(i = 1; i <= min; i++){
if(max % i == 0 && min % i == 0){
tmp = i;
}
}
printf("最大公约数为%d\n", tmp);
printf("最小公倍数为%d\n", m * n / tmp);
}
return 0;
}
```
希望能够帮到你!
输入两个正整数m和n{100<=m,n<1000},输出m到n之间的所有的水仙花数,若该区间没有一个水仙花数,则输出no。水仙花数是指一个三位数,其各位数字的立方和等于它本身。要求定义并调用函数is(
先根据题意,输入两个正整数m和n,其中100<=m,n<1000。然后输出m到n之间的所有水仙花数,如果该区间没有一个水仙花数,则输出no。水仙花数是指一个三位数,其每个位上的数字的立方和等于该数本身。
可以使用一个函数is()来判断一个数是否是水仙花数。遍历m到n之间的所有数,对于每一个数,调用is()函数进行判断,如果是水仙花数,则保存到一个列表中。遍历完之后,判断列表是否为空,如果为空则输出no,否则输出列表中的所有水仙花数。
代码如下:
def is(n):
i = n
s = 0
while i > 0:
s += (i%10) ** 3
i //= 10
return s == n
m, n = map(int, input().split())
list = []
for i in range(m, n+1):
if is(i):
list.append(i)
if len(list) == 0:
print("no")
else:
for i in list:
print(i, end=" ")