C语言如何使用for循环求完全数并输出其本身和其因数,不使用其他特殊函数
时间: 2024-11-03 16:19:18 浏览: 45
C语言经典例题,小甲鱼C语言例题
5星 · 资源好评率100%
在C语言中,我们可以使用for循环来寻找一个数是否为完全数,并输出该数及其所有因数。完全数是指那些等于其所有正因数(包括1和自身)之和的自然数。下面是一个简单的示例程序,用于找到并输出指定范围内的完全数:
```c
#include <stdio.h>
// 检查是否为完全数的辅助函数
int isPerfect(int num) {
int sum = 1; // 因数初始值为1
for (int i = 2; i * i <= num; i++) { // 只需要检查到sqrt(num)
if (num % i == 0) {
sum += i;
if (i != num / i) { // 如果不是本身的平方根,则加另一个因子
sum += num / i;
}
}
}
return sum == num;
}
int main() {
int start = 1, end = 100; // 设置搜索范围
printf("查找1到%d之间的完全数:\n", end);
for (int i = start; i <= end; i++) {
if (isPerfect(i)) {
printf("%d 是完全数,它的因数有: ", i);
for (int j = 1; j <= i; j++) {
if (i % j == 0) {
printf("%d ", j);
}
}
printf("\n");
}
}
return 0;
}
```
在这个程序中,我们首先定义了一个`isPerfect`函数,用于检查某个数是否为完全数。然后在主函数`main`中,通过for循环遍历指定范围内的整数,对每个数调用`isPerfect`检查,如果是,则输出该数及其因数。
阅读全文