c语言求正整数n之内的所有完数的代码
时间: 2024-03-11 16:48:37 浏览: 59
java代码-使用java解决求正整数n以内的所有质数个数并给出计算时间的源代码
以下是求解正整数n以内的所有完数(Perfect Number)的C语言代码:
``` c
#include <stdio.h>
// 计算一个数的所有因子之和
int sum_factors(int num) {
int sum = 0;
for (int i = 1; i < num; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum;
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("%d以内的完数有:", n);
for (int i = 1; i <= n; i++) {
int sum = sum_factors(i);
if (sum == i) {
printf("%d ", i);
}
}
return 0;
}
```
在上述代码中,首先定义了一个用于计算一个数的所有因子之和的函数 `sum_factors`,然后通过循环遍历 1~n 中的每一个数,调用 `sum_factors` 函数计算其所有因子之和,如果其等于该数本身,则说明该数是完数,将其输出即可。
阅读全文