判断整数m是不是水仙花数:输入一个位数不多于10位的正整数m,判断m是不是水仙花数。 水仙花数:例如输入的m是一个5位数,如果个、十、百、千、万的5次方和等于m,则m是一个5位水仙花数。C语言
时间: 2023-05-27 08:05:03 浏览: 185
实现如下:
#include <stdio.h>
#include <math.h>
int main()
{
long long m, n, sum = 0;
int count = 0, digit;
printf("请输入一个正整数m:");
scanf("%lld", &m);
n = m;
// 计算m的位数
while (n > 0) {
n /= 10;
count++;
}
n = m;
// 计算每个位上的数字的count次方和
while (n > 0) {
digit = n % 10;
sum += pow(digit, count);
n /= 10;
}
// 判断m是否是水仙花数
if (sum == m) {
printf("%lld是水仙花数\n", m);
} else {
printf("%lld不是水仙花数\n", m);
}
return 0;
}
相关问题
判断整数m是不是水仙花数:输入一个位数不多于10位的正整数m,判断m是不是水仙花数。
水仙花数是指一个n位正整数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是Python代码实现:
m = int(input("请输入一个正整数:"))
n = len(str(m)) # 获取m的位数
sum = 0
temp = m
while temp > 0:
digit = temp % 10 # 获取个位数字
sum += digit ** n # 将每个位上的数字的n次幂累加
temp //= 10 # 去掉个位数字
if m == sum:
print(m, "是水仙花数")
else:
print(m, "不是水仙花数")
阅读全文