C语言中的fun函数求解,很简单的

fun函数的实现的功能是判断一个数是否是完数,如果为完数,返回1,否则,返回0
程序填空,在汉字部分填写程序,就一部分
#include<stdio.h>
int fun(int x)
{
编写fun函数的函数体
}
main()
{
int i;
printf(“输出2-1000之间的完数:”);
for(i=2;i<1000;i++)
if(fun(i))
printf("%5d",i);
}

输出结果:

输出2-1000之间的完数:     6   28  496


代码:

#include<stdio.h>


int fun(int x)
{
int i,j=0;
int m=x/2+1;
for(i=1;i<m;++i)
{
if( (x % i) == 0)
j += i;
}

if(j == x)
return 1;
else 
return 0;
}

main()
{
int i;
printf("输出2-1000之间的完数: ");
for(i=2;i<1000;i++)
if(fun(i))
printf("%5d",i);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-11
#include<stdio.h>


int fun(int x)
{
int i = 1,sum = 0;
for(i=1;i<x;i++)
{
if(x%i==0)//余数为0表示可以整除
sum += i;
}
if(sum==x)
return 1;
return 0;
}


void main()
{
int i;
printf("输出2-1000之间的完数:");
for(i=2;i<1000;i++)
if(fun(i))
printf("%5d",i);
}

第2个回答  2013-11-11
int fun(int x)
{
int temp = 0;;
for (int i=1;i< m;++i)
{
if(m%i == 0)//求所有非本身约数的和
temp += i;
}
return temp == m? 1:0;
}