当前位置: 代码迷 >> C语言 >> [求助]看看我写的哪里错了
  详细解决方案

[求助]看看我写的哪里错了

热度:95   发布时间:2007-11-05 14:51:33.0
[求助]看看我写的哪里错了

一个数如果恰好等于他的因子之和,这个数就成为完数,求100以内的所有完数.
main()
{
int i=1,k=1,sum=0;
i!=k;
for(i=1;i<=1000;i++)
{
for(k=1;k<i;k++)
{
if(i%k==0)sum+=k;

{
if(i==sum)
printf("i=%3d ",i);

else continue;
}
}
}

getch();

}
编译后什么也不显示啊.


----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<math.h>
int main()
{
static int k[10];
int i,j,n,s;
for(j=2;j<1000;j++)
 {
 n=-1;
 s=j;
  for(i=1;i<j;i++){
   if((j%i)==0)
   { n++;
    s=s-i;
    k[n]=i;
   }
  }
 if(s==0)
 {
 printf("%d is a wanshu",j);
 for(i=0;i<j;i++)
 printf("%d,",k[i]);
 printf("%d\n",k[n]);
 }
}
return 0;
}
楼主最好不要复制程序,有很多错误
自己敲进去是可以的
你的程序我没看懂,希望有高手来解释下
----------------解决方案--------------------------------------------------------

For i From 2 To n CBY 1
Output 2^(n−1)*(2^n − 1)
EndFor


----------------解决方案--------------------------------------------------------

main()
{
int i=1,k=1,sum=0;
i!=k;
for(i=1;i<=1000;i++)
{
sum = 0; /* 否则sum的初值一直是前面的 */
for(k=1;k<i;k++)
{
if(i%k==0)sum+=k;

{
if(i==sum)
printf("i=%3d ",i);

else continue;
}
}
}

getch();

}


----------------解决方案--------------------------------------------------------
楼主for语句有问题
[CODE]
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i=1,k=1,sum;
for(i=1;i<=100;i++)
{
sum=0;
for(k=1;k<=i/2;k++)
if(i%k==0)
sum+=k;
if(i==sum)
printf("i=%3d ",i);
}
getch();
return 0;
}
[/CODE]
----------------解决方案--------------------------------------------------------

哈,谢谢4楼的拉


----------------解决方案--------------------------------------------------------
引用楼主:“一个数如果恰好等于他的因子之和 ”。

4 == 2 * 2 == 2 + 2



因子
什么是数的因子?
因子就是所有可以整除这个数的数,但是不包括这个数自身。
比如15的因子是 1,3,5

[此贴子已经被作者于2007-11-6 12:23:00编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案