先判读这个数能被那些数整除,然后这能整除的加起来和这个数比较,如果相等就是完全数。
程序如下:
#include
main()
{
int i;
int a,b=0;
printf("请输入一个数:\n");
scanf("%d",&a);
for(i=1;i {
if(a%i==0)
{
b+=i;
}
}
if(a==b)
printf("%d是完数\n",a);
else
printf("%d不是完数\n",a);
return 0;
}
#include
int isPerfect(int n) {
int i, s=1;
for (i = 2; i < n; i++)
if (n % i == 0)
s = s + i;
if (s == n)
return (1);
else
return (0);
}
void main() {
int i,n=100;
//printf("Please input an integer: ");
//scanf("%d", &n);
for (i = 1; i < n; i++)
if (isPerfect(i))
printf("%d\n", i);
}
#include
using namespace std;
int main()
{
int i,j,m,n;
cout<<"请输入一个数:";
cin>>n;
for(i=2;i
m=0;
for(j=1;j<=i/2;j++)
{
if(i%j==0)
m=m+j;
}
if(m==i)
cout<
return 0;
}这是我帮你写好的程序,用的是C++,你可以略加修改,改成你要的C语言形式的。