C语言 一个数如果恰好等于它的因子之和,这个数就称为“完数”。如6=1+2+3.找出1000以内的所有完数。

#include <stdio.h>
void main()
{
int num,sum=0,m;
printf("1\t");
for(num=2;num<=1000;num++)//控制num一直到1000
{
for(m=1;m<num;m++)//找出num的因子
{
if(num%m==0)
{
sum=sum+m;//num因子之和
}
}
if(sum==num)//判断num是否为完数
{
printf("%d\t",num);
}
}

}

这段代码哪里有问题?重写代码的不要。谢谢

#include <stdio.h>
void main()
{
    int num,sum=0,m;
    printf("1\t");
    for(num=2;num<=1000;num++)
    {
        sum = 0;  // è¿™é‡Œè¦é‡ç½®ä¸º0
        for(m=1;m<num;m++)
        {
            if(num%m==0)
            {
                sum=sum+m;
            }
        }
        if(sum==num)
        {
            printf("%d\t",num);
        }
    }
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-26
1也是完全数,另外这段代码是逻辑错还是编译错?