c语言求2到n的完全数
时间: 2024-11-22 20:47:24 浏览: 11
在C语言中,求2到n之间的完全数需要遍历并检查每个数是否满足完全数的条件。一个数如果等于其所有真因子(除了自身以外的因子)之和,则称这个数为完全数。例如,6是一个完全数,因为它可以表示为1+2+3。
以下是简单的C程序示例,用于找出2到n范围内的所有完全数:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPerfect(int num) {
int sum = 1; // 总和从1开始,因为1也是每个数的因子
for (int i = 2; i * i <= num; i++) { // 只需检查到num的平方根,避免重复因子
if (num % i == 0) { // 如果i是因子
if (i != num / i) { // 如果i不是num的除本身外的因子
sum += i; // 添加i到总和
}
sum += num / i; // 同时加上除以i的那个因子
}
}
return sum == num; // 如果sum等于num,那么num就是完全数
}
void findPerfectNumbers(int n) {
printf("Perfect numbers between 2 and %d are:\n", n);
for (int i = 2; i <= n; i++) {
if (isPerfect(i)) {
printf("%d ", i);
}
}
printf("\n");
}
int main() {
int n;
printf("Enter a number (n): ");
scanf("%d", &n);
findPerfectNumbers(n);
return 0;
}
```
当你运行此程序并输入一个值,它会输出2到那个数值范围内所有的完全数。
阅读全文