C语言在1到n内找出完数个数的程序。
时间: 2024-10-14 21:13:49 浏览: 46
在C语言中,寻找1到n范围内的所有完美数(也称完全数)需要编写一段特定的算法。完美数是指一个正整数的所有真因数(除了自身以外的因子)加起来恰好等于该数本身。例如6是一个完美数,因为它的因数有1, 2, 和3,它们相加正好等于6。
下面是一个简单的C程序,使用了循环和条件判断来找出1到n内的完美数:
```c
#include <stdio.h>
int isPerfect(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum == num;
}
int countPerfectNumbers(int n) {
int count = 0;
for (int i = 1; i <= n; i++) {
if (isPerfect(i)) {
count++;
}
}
return count;
}
int main() {
int n;
printf("请输入一个整数n: ");
scanf("%d", &n);
int perfectCount = countPerfectNumbers(n);
printf("从1到%d之间有%d个完美数。\n", n, perfectCount);
return 0;
}
```
在这个程序中,`isPerfect`函数用于检查一个数是否是完美数,而`countPerfectNumbers`函数则遍历1到n,统计完美数的数量。
阅读全文