主题:求教一个C语言程序
zy666666
[专家分:0] 发布于 2010-05-29 18:13:00
求三位整数的所有完数
完数:它的所有因子的和等于它本身的数称为完数
例:6=1+2+3;28=1+2+4+7+14;
帮忙检查一下我的程序哪里错了
#include"stdio.h"
void main()
{
int m,n,sum;
sum=0;
for(m=100;m<1000;m++)
{
for(n=1;n<m;n++)
{
if(m%n==0)
sum+=n;
}
if(m==sum)
printf("%d\m",m);
}
}
谢谢了!!!
最后更新于:2010-05-29 18:15:00
回复列表 (共5个回复)
沙发
土豆土豆 [专家分:70] 发布于 2010-05-29 18:48:00
sum=0 这句应该放在第一层循环里面,第二层循环的前面,也就是
for(m=100;m<1000;m++)
{sum=0;
for(n=1;n<m;n++){
.
.
.
因为每次换一个数m测试的时候都要对sum清零;
而且最后的小问题“%d\m"应该是"%d\n"
板凳
zy666666 [专家分:0] 发布于 2010-05-29 21:42:00
多谢指教啊
我刚学C语言,还不怎么懂;
谢谢;还望个位大侠不惜赐教啊
[em5][em5][em5]
3 楼
yansheng [专家分:1530] 发布于 2010-05-29 21:45:00
#include"stdio.h"
int main()
{
int m,n,sum;
for(m=1;m<1000;m++)
{
sum=0;
for(n=1;n<m;n++)
{
if(m%n==0)
sum+=n;
}
if(m==sum)
printf("%d ",m);
}
}
4 楼
gaoqihang [专家分:10] 发布于 2010-05-29 21:56:00
#include"stdio.h"
void main()
{
int m,n,sum;
sum=0;
for(m=100;m<1000;m++)
{
for(n=1;n<m;n++)
{
if(m%n==0)
sum+=n;
}
if(m==sum)
printf("%d\n",sum);
} printf("%d\n",sum);
}
5 楼
zy666666 [专家分:0] 发布于 2010-05-30 09:49:00
谢谢个位了
我来回复