本题要求实现一个函数,判断一个自然数是否是完数。如果一个自然数除自身之外的因子和等于它自己,则称该数为完数。例如 6 = 1 + 2 + 3;则6是完数。
函数接口定义:
在这里描述函数接口。:
int isPerfect (int x);
在这里解释接口参数。其中 x 是用户传入的参数。 x 的值不超过int的范围且 x大于0;如果 x是完数,函数返回1,否则返回0。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子:
#include <stdio.h>
int isPerfect(int x);
int main()
{
for (int i = 1; i <= 10000; i++)
{
if (isPerfect(i))
{
printf("%d\n", i);
}
}
return 0;
}
/* 请在这里填写答案 */
#include <stdio.h>
int isPerfect(int x);
int main()
{
for (int i = 1; i <= 10000; i++){
if (isPerfect(i)){
printf("%d\n", i);
}
}
return 0;
}
int isPerfect(int x){
int sum = 0;
for (int i=1; i<x; i++){
if (x%i==0)
sum += i;
}
if (x==sum)
return 1;
else
return 0;
}
输出结果:
6
28
496
8128