读书人

请大家帮忙看看!该怎么处理

发布时间: 2012-05-20 16:03:12 作者: rapoo

请大家帮忙看看!
#include "stdio.h"
void main()
{
int a,i;
int sum=0;
for(i=2;i<1000;i++)
{
for(a=1;a<i;a++)
if((i%a)==0)sum=sum+a;

if(sum==i);
{
printf("%d ",i);
for(a=1;a<i;a++)
if(i%a==0)
printf("%d ",a);
printf("\n");
}
}
}

求1000以内的完数,运行出来几乎把每个数都输出了,不知道错在哪里!
请大家帮我看看!

[解决办法]

C/C++ code
int main(){    int a,i;    int sum=0;    for(i=2;i<1000;i++)    {        sum = 0;        for(a=1;a<i;a++)            if((i%a)==0)                sum=sum+a;        if(sum==i)        {            printf("%d ",i);            for(a=1;a<i;a++)                if(i%a==0)                    printf("%d ",a);            printf("\n");        }    }    system("PAUSE");    return 0;}
[解决办法]
#include "stdio.h"
void main()
{
int a,i;
int sum;
for(i=2;i < 1000;i++)
{
sum = 0; //对每一个i都要将sum置0
for(a = 1; a < i; a++)
{
if((i % a) == 0)
sum = sum + a;
}
if(sum == i) //这里不要分号
{
printf("%d ",i);
for(a=1;a<i;a++)
if(i%a==0)
printf("%d ",a);
printf("\n");
}
}
}

读书人网 >C++

热点推荐