c语言从键盘输入一个整数,编程找出该整数之内的所有完数
时间: 2024-10-29 21:09:50 浏览: 6
在C语言中,完数(Perfect Number)是指一个正整数的所有真因数(除了自身以外的因子)加起来等于它本身的数。例如6是一个完数,因为它有三个真因数1、2和3,它们的和正好等于6。
下面是一个简单的C程序,用于找出给定范围内的所有完数:
```c
#include <stdio.h>
// 函数定义来检查是否是完数
int isPerfect(int num) {
int sum = 1; // 初始化总和为1,因为1也是每个数的因子
for (int i = 2; i * i <= num; i++) { // 只需检查到根号n,避免重复计算
if (num % i == 0) {
sum += i;
if (i != num / i) { // 如果不是平方数,则加上另一个因子
sum += num / i;
}
}
}
return sum == num ? 1 : 0; // 返回1表示是完数,0表示不是
}
int main() {
int input;
printf("请输入一个整数范围的上限:");
scanf("%d", &input);
printf("在%d范围内的完数有:\n", input);
for (int num = 2; num <= input; num++) {
if (isPerfect(num)) {
printf("%d ", num); // 打印出完数
}
}
return 0;
}
```
当你运行这个程序并输入一个整数作为上限,它会显示在那个范围内的所有完数。
阅读全文