中国箱包市场在哪:C语言:怎么求完数?

来源:百度文库 编辑:高校问答 时间:2024/05/14 02:42:15
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。并按下面格式输出其因子:
6 its factors are 1,2,3
不能用数列。
最主要的是怎么输出每个因子?
请写出源代码,谢谢!

先定义一个数组a[]放各因数——一定有“1”
然后定义一个数组b[999]={1,2,3,4,5……}可以用for语句赋值int i,p;
for(i=0;i<=998;i++)
{for(p=1;p<=999;p++);
b[i]=p;}放1——999
然后用各各数——可再定义数组——去剩b[]
得余数为零的放到a[]再各各无素相加等于原来的剩数的,
就为真——用一个循环,一个int变量加一,直到 结束

这个问题,只要你能求出一个数的因子就可以了呀。用取余的方法,求得因子,然后看相加是否、相等就可以了呀

main()
{
int w=1000;
int m, s, i;
for (m = 2; m < w; m++)
{
s = 0; /* s为因子之和 */
for (i = 1; i < m; i++)
if ((m % i) ==0)
s = s + i; /* i为因子 */
if (s == m)
{
printf("%d",w" Its factors are ");
for (i = 1; i < m; i++)
if (m % i == 0)
printf("%d",i",");
printf("\n");
}
}
return 0;
}