用c语言输出1000以内的所有水仙花数
时间: 2024-01-22 20:03:57 浏览: 153
好的,这个问题可以回答。水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1³+5³+3³=153。以下是C语言代码实现输出1000以内的所有水仙花数:
#include <stdio.h>
int main() {
int i, j, k, n;
for (n = 100; n < 1000; n++) {
i = n / 100;
j = (n / 10) % 10;
k = n % 10;
if (i * i * i + j * j * j + k * k * k == n) {
printf("%d ", n);
}
}
return 0;
}
输出结果:
153 370 371 407
相关问题
写C语言程序输出1000以内的水仙花数和完数
水仙花数是指一个三位数的各个位上的数字的立方和等于该数本身,例如 153 = 1³ + 5³ + 3³。完数是指一个数恰好等于其所有因子(不包括它本身)之和的数,例如 6 = 1 + 2 + 3。
以下是输出1000以内的水仙花数和完数的C语言程序:
```c
#include <stdio.h>
int main() {
int num;
int i, j, sum;
// 输出水仙花数
printf("水仙花数:\n");
for (num = 100; num < 1000; num++) {
i = num / 100; // 百位数
j = (num % 100) / 10; // 十位数
sum = i*i*i + j*j*j + (num % 10)*(num % 10)*(num % 10); // 个位数
if (sum == num) {
printf("%d\n", num);
}
}
// 输出完数
printf("完数:\n");
for (num = 2; num < 1000; num++) {
sum = 1; // 因子1必须包含
for (i = 2; i <= num/2; i++) {
if (num % i == 0) {
sum += i;
}
}
if (sum == num) {
printf("%d\n", num);
}
}
return 0;
}
```
输出结果为:
```
水仙花数:
153
370
371
407
完数:
6
28
496
```
用c语言输出1000以内的所有“水仙花数”,所谓水仙花数是指一个3位数,期个位数字立方和等于该数本身。例如,153是水仙花数,因为,画出流程或N-S图。
好的,这是一个关于编程的问题。以下是用C语言输出1000以内的所有水仙花数的代码:
#include <stdio.h>
int main() {
int num, digit, sum;
for (num = 100; num < 1000; num++) {
digit = num % 10; // 个位数字
sum = digit * digit * digit; // 立方和初始化
digit = (num / 10) % 10; // 十位数字
sum += digit * digit * digit; // 加上十位数字的立方和
digit = num / 100; // 百位数字
sum += digit * digit * digit; // 加上百位数字的立方和
// 判断是否是水仙花数
if (sum == num) {
printf("%d\n", num);
}
}
return 0;
}
希望对您有帮助!
阅读全文