搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 受不了了。到底哪儿错了??那个完数的问题,求解答
标题:
受不了了。到底哪儿错了??那个完数的问题,求解答
只看楼主
tp19920527
等 级:
论坛游民
帖 子:15
专家分:10
注 册:2011-2-26
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:6
受不了了。到底哪儿错了??那个完数的问题,求解答
一个数如果恰好等于它的因子之和,称为完数。如6=1+2+3,6的因子是1,2,3,因此6是完数。编程序找出1000内所有完数。
#include <stdio.h>
void main()
{int m,i,s;
for(m=2;m<1000;m++)
{s=0;
for(i=1;i<m;i++)
if((m%i)==0) s+=i;
if(s==m)
printf("%d\n",m);
}
}
搜索更多相关主题的帖子:
1000
include
2011-03-16 09:34
tp19920527
等 级:
论坛游民
帖 子:15
专家分:10
注 册:2011-2-26
第
2
楼
得分:0
貌似可以了。。
#include <stdio.h>
void main()
{int m,i,s=0; \*刚才s=0在这儿赋值为什么不行*\
for(m=2;m<1000;m++)
{
for(i=1;i<m;i++)
if((m%i)==0) s+=i;
if(s==m)
printf("%d\n",m);
}
}
2011-03-16 09:38
njkido
等 级:
蜘蛛侠
帖 子:224
专家分:1184
注 册:2011-3-8
第
3
楼
得分:20
每判断完一个数 s得清0
一个偶数是完数,当且仅当它具有如下形式:2^(n-1)*(2^n -1),而(2^n-1)必须是素数。
2011-03-16 09:39
刘定邦
等 级:
青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
第
4
楼
得分:0
每循环一次。判断完一个数。S得清零。所以不能放在循环体内
2011-03-16 10:39
JackyZhang
等 级:
论坛游民
帖 子:82
专家分:29
注 册:2010-7-12
第
5
楼
得分:0
s就应该放在第一个for循环内的,因为每判断一个数要归零一次,如果你放在最外面是不行的。
其实你第一次就做对了,只不过有个小问题。s=0后的分号应该是英文状态下的。;
Vc通过。
#include<stdio.h>
int main()
{
int m,i;
for(m=2;m<1000;m++)
{ int s=0;
for(i=1;i<m;i++)
{
if(m%i==0)
s+=i;
}
if(s==m)
printf("%d\n",m);
}
return 0;
}
初生牛犊,望多多照顾!
2011-03-16 11:32
t1melost
等 级:
新手上路
帖 子:22
专家分:3
注 册:2010-12-6
第
6
楼
得分:0
#include <stdio.h>
void main()
{int m,i,s;
for(m=2;m<1000;m++)
{ s=0;
for(i=1;i<m;i++)
if((m%i)==0) s+=i;
if(s==m)
printf("%d\n",m);
}
}
楼主,S 没有清零。
}
2011-03-16 15:40
tp19920527
等 级:
论坛游民
帖 子:15
专家分:10
注 册:2011-2-26
第
7
楼
得分:0
谢谢楼上各位.
2011-03-16 22:55
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-333902-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 2.400992 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved