如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就称它为完全数(Perfect Number)。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfectO然后判断从键盘输入的整数是否是完全数。
#include <stdio.h>
#include <stdlib.h>
int Isperfect(int a);
int main()
{
int m,n;
printf("输入判断的数:");
scanf("%d",&m);
n=Isperfect(m);
if(n==1)
printf("是完全数!");
else
printf("不是完全数!");
return 0;
}
int Isperfect(int a)
{
int i,sum=0;
for(i=1;i<a;i++)
{
if(a%i==0)
sum=sum+i;
}
if(sum==a)
return 1;
else
return 2;
}
先写主函数,然后写判断的函数。判断是否是完全数:用for循环如果能被因子整除,那就累加起来为sum和,接着判断sum是否等于要判断的数即可。