用C语言循环语句求指定范围内的完数。如果没有,输出NO
时间: 2024-10-25 18:11:41 浏览: 10
使用函数输出指定范围内的完数.docx
在C语言中,完数(Perfect Number)是指一个数如果所有真因子(除了它本身以外的因数)加起来正好等于它自身,那么这个数就被称为完美数。例如,6是一个完美数,因为1+2+3=6。
要编写一个程序来找出给定范围内的完美数,你可以使用for循环遍历该范围,并检查每个数字是否为完美数。下面是一个简单的示例:
```c
#include <stdio.h>
int isPerfect(int num) {
int sum = 0;
for (int i = 1; i * i <= num; i++) { // 只需检查到num的平方根即可
if (num % i == 0) {
if (i != num / i) { // 如果i不是num/i(避免重复计数)
sum += i;
sum += num / i;
} else {
sum += i; // 如果i等于num/i(即i是平方根),直接加上
}
}
}
return sum == num; // 返回sum是否等于num,表示是否是完美数
}
int main() {
int start, end;
printf("请输入范围的起始值和结束值:");
scanf("%d %d", &start, &end);
for (int num = start; num <= end; num++) {
if (isPerfect(num)) {
printf("%d 是完美数.\n", num);
} else {
printf("%d 不是完美数.\n", num);
}
}
return 0;
}
```
在这个程序里,`isPerfect`函数会检查一个数是否是完美数,然后`main`函数会遍历指定范围并打印结果。
阅读全文