C语言编程。找出100到1000以内的所有完全数,完全数就是其所有因数的和等于自己,如6=1+2+3,要求输出其所有不相等的因数。
时间: 2024-12-08 16:16:33 浏览: 9
c语言题,从入门到精通
在C语言编程中,我们可以创建一个函数来检查一个数字是否为完全数,并找到它的所有因数。以下是实现这个功能的一个简单示例:
```c
#include <stdio.h>
// 函数声明用于计算一个数的所有因数
void findFactors(int num);
int main() {
int i;
printf("寻找100到1000之间的完全数...\n");
for (i = 100; i <= 1000; ++i) {
if (isPerfect(i)) { // 如果是完全数,调用findFactors函数
printf("Number %d is a perfect number.\n", i);
findFactors(i); // 输出所有不相等的因数
}
}
return 0;
}
// 检查一个数是否为完美数的辅助函数
int isPerfect(int n) {
int sum = 1; // 初始化因数和为1,因为每个数都是它自身的因子
for (int j = 2; j * j <= n; ++j) {
if (n % j == 0) {
sum += j; // 如果j是因数,加入和
if (j != n / j) { // 避免重复添加相同的因子(如果n不是平方数)
sum += n / j;
}
}
}
// 如果所有因数之和等于原数,则返回1表示是完美数,否则返回0
return sum == n ? 1 : 0;
}
// 输出因数的函数
void findFactors(int num) {
for (int i = 1; i <= num; ++i) {
if (num % i == 0 && i != 1 && i != num) { // 只打印不相等的因数
printf("%d ", i);
}
}
printf("\n");
}
```
当你运行这段程序,它会找出100到1000范围内的所有完全数及其不相等的因数。
阅读全文