首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

各位老师,请帮忙看一下异常在哪里

2013-11-02 
各位老师,请帮忙看一下错误在哪里!题目是:一个数如果巧虎等于它的因子之和,这个数就称为完数。例如,6的因子

各位老师,请帮忙看一下错误在哪里!
题目是:一个数如果巧虎等于它的因子之和,这个数就称为完数。例如,6的因子是1,2,3,而1加2加3等于6.编程找出1000以内的完数,输出格式为  6 its factors are 1,2,3
程序为

#include "stdafx.h"
#include <stdio.h>

int main(int argc, char* argv[])
{ int i,a[100],j,b,c,sum;
    for(i=1;i<=10;i++)
{b=0;sum=0;
for(j=1;j<=i;j++)
{if(i%j==0) 
{a[b]=j;b++;}
}
for(c=0;c<b;c++)
sum+=a[c];
if(sum==i)
{printf("%d its factors are",i);
for(c=0;c<b;c++)
printf("%d,",a[c]);}
}
printf("\n");
return 0;
}
c
[解决办法]
就你的算法哈;
 for(i=1;i<=1000;i++)

 for(j=1;j<i;j++)
两处错了
[解决办法]
6 its factors are1,2,3,
28 its factors are1,2,4,7,14,
496 its factors are1,2,4,8,16,31,62,124,248,

结果就是这样了,输出可以改下
  printf("\n%d its factors are",i);

热点排行