| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4803 人关注过本帖
标题:一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如,6的因子为1 ...
只看楼主 加入收藏
feelings010
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-4-20
收藏
 问题点数:0 回复次数:5 
一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如,6的因子为1,2,3,
一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如,6的因子为1,2,3,而6=1+2+3,因此事是“完数”。编程序找出1000之内的所有完数了。下面是我编的程序,但是输不出结果,能否帮我看看,谢谢·!
{
int n,i,sum=0,k;
for(i=1;i<=1000;i++){
for(n=1;n<=i;n++)
if(i%n==0){
sum=sum+n;
}
if(sum==i){
printf("%d",n);
k=k+1;
}
}
if(k%10==0)
printf("\n);
}
搜索更多相关主题的帖子: 因子之和 sum printf 此事 
2007-04-28 23:45
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
每次都要做sum=0;

倚天照海花无数,流水高山心自知。
2007-04-29 00:19
feelings010
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-4-20
收藏
得分:0 
楼上的,我改了怎么还是不行的
2007-04-29 17:52
josen0205
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
收藏
得分:0 
{
int n,i,sum=0,k=0;
for(i=1;i<=1000;i++)
{
for(n=1;n<=i;n++)
if(i%n==0) sum=sum+n;

if(sum==i)
{
printf("%d",n);
k++;
}
else sum=0;
}
if(k%10==0) printf("\n);
}

只有想不到,没有做不到
2007-05-08 14:50
fish_
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-4-25
收藏
得分:0 

#include<stdio.h>
#include<iostream.h>
int main(void)
{

for(int i=1;i<=1000;i++)
{
int r=i;
int a=0;

for(int x=1;x<=r/2;x++)

{

if(r%x==0)
{
a=a+x;
}



}
if(a==i)
{
cout<<i<<" ";
}
}
cout<<endl;
return 0;
}

貌似上面的算法复杂度有点大!改进一下!想法差不多!

[此贴子已经被作者于2007-5-8 15:42:02编辑过]

2007-05-08 15:22
fish_
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-4-25
收藏
得分:0 

#include<stdio.h>
void main()
{

for(int i=1;i<=1000;i++)
{
int r=i;
int a=0;

for(int x=1;x<=r/2;x++)
{

if(r%x==0)
{
a=a+x;
}

}
if(a==i)
{
printf("%d ",a);
}
}

}

2007-05-08 15:53
快速回复:一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如,6的因 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014451 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved