一个数如果恰好等于他的因子之和,这个数就成为完数,求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编辑过]
----------------解决方案--------------------------------------------------------