请用c语言写一个求1到10000自守数代码
时间: 2024-11-25 21:20:05 浏览: 17
自守数是指一个正整数除以它的每个数字得到的结果都是相同的数。例如,1618就是自守数,因为 \( \frac{1618}{1} = \frac{161}{6} = \frac{61}{18} = \frac{1}{1618} \)。
下面是一个简单的C语言程序,用于查找并打印1到10000范围内的所有自守数:
```c
#include <stdio.h>
#include <stdbool.h>
// 辅助函数,检查是否满足自守数条件
bool is_armstrong(int num) {
int original_num = num;
int sum = 0;
while (num != 0) {
int digit = num % 10;
sum += digit * digit * digit; // 计算每位的立方和
num /= 10;
}
return original_num == sum;
}
int main() {
for (int i = 1; i <= 10000; ++i) {
if (is_armstrong(i)) {
printf("%d is an Armstrong number.\n", i);
}
}
return 0;
}
```
这个程序通过遍历1到10000之间的每一个数,然后使用`is_armstrong`函数检查它是否是自守数。如果是,就打印出来。
阅读全文