一个整数,除了本身以外的其他所有约数的和如果等于该数,那么我们就称这个整数为完全数。
例如,6 就是一个完全数,因为它的除了本身以外的其他约数的和为 1+2+3=6。
现在,给定你 N 个整数,请你依次判断这些数是否是完全数。
输出格式
每个测试用例输出一个结果,每个结果占一行。
如果测试数据是完全数,则输出 X is perfect,其中 X 是测试数据。
如果测试数据不是完全数,则输出 X is not perfect,其中 X 是测试数据。
#include<stdio.h>
int main()
{
int i,j,x,n,sum;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
sum=0;
for(j=1;j*j<=n;j++)
{
if(x%j==0)
{
if(j<x) sum+=j;
if(j!=x/j&&x/j<x) sum+=x/j;
}
}
if(sum==x)
{
printf("%d is perfect\n",x);
}
else
{
printf("%d is not perfect\n",x);
}
}
return 0;
}