浙江大学pta题库c语言找完数
时间: 2024-12-08 22:11:33 浏览: 31
C语言入门习题:寻找完数(输出形式为“数字,数字,……,数字”)
5星 · 资源好评率100%
在浙江大学PTA题库中,关于C语言找完数的题目,通常要求编写一个程序来寻找一定范围内的完数。完数(Perfect Number)是指一个数等于其所有真因数(即除了自身以外的因数)之和。例如,6是一个完数,因为6的真因数有1, 2, 3,它们的和正好是6。
以下是一个简单的C语言程序示例,用于查找并打印一定范围内的完数:
```c
#include <stdio.h>
// 函数声明:判断一个数是否为完数
int isPerfect(int num);
int main() {
int start, end;
// 输入范围的起始值和结束值
printf("请输入范围的起始值: ");
scanf("%d", &start);
printf("请输入范围的结束值: ");
scanf("%d", &end);
printf("范围内的完数有:\n");
// 遍历范围内的每个数,查找完数
for (int i = start; i <= end; i++) {
if (isPerfect(i)) {
printf("%d\n", i);
}
}
return 0;
}
// 判断一个数是否为完数的函数
int isPerfect(int num) {
if (num <= 1) {
return 0; // 1不是完数
}
int sum = 0;
// 遍历从1到num/2的所有数,寻找因数
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum == num;
}
```
这个程序首先提示用户输入范围的起始值和结束值,然后遍历该范围内的每个数,调用`isPerfect`函数来判断该数是否为完数。如果是完数,则打印出来。
阅读全文