请大家帮忙看看!该怎么处理
请大家帮忙看看!
#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以内的完数,运行出来几乎把每个数都输出了,不知道错在哪里!
请大家帮我看看!
------解决方案--------------------
#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");
}
}
}