C语言实现: 输出6000以内所有的自守数。自守数是指一个数平方的尾数等于该数本身的自然数,例如762=5776,则76为自守数。注意:输出的每个数据占5列宽。
时间: 2024-10-23 21:14:11 浏览: 29
输出n以内的所有素数 c语言:找出N以内的所有素数
在C语言中,我们可以编写一个简单的循环程序来找出6000以内的所有自守数。以下是一个示例代码片段:
```c
#include <stdio.h>
// 定义函数检查是否为自守数
int is_armstrong(int num) {
int length = (int)log10(num) + 1;
int sum = 0;
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == num;
}
// 主函数输出自守数
void print_armstrong_numbers() {
for (int i = 1; i <= 6000; i++) {
if (is_armstrong(i)) {
printf("%5d", i); // 控制每行输出5列宽
if ((i + 1) % 10 == 0) { // 每打印10个数换行
printf("\n");
}
}
}
}
int main() {
print_armstrong_numbers();
return 0;
}
```
这个程序首先定义了一个`is_armstrong`函数,用于判断给定数字是否为自守数。然后在`print_armstrong_numbers`函数中,我们遍历1到6000之间的所有整数,如果遇到自守数就按照5列宽度打印。每10个数后会自动换行。
运行此程序,它将输出6000以内所有的自守数,并保持每行5列宽的格式。
阅读全文