| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1001 人关注过本帖
标题:输出与其公因子之和相同的整数
只看楼主 加入收藏
走在街上的猪
Rank: 2
等 级:论坛游民
帖 子:11
专家分:21
注 册:2015-10-11
收藏
 问题点数:0 回复次数:5 
输出与其公因子之和相同的整数
一个正整数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。

   输入一个正整数n,编程序输出从2到n间的所有完数。



上面的题目要求

比如输入50,
结果为6
28


我自己输入的代码为

#include<stdio.h>
int main()
{
        int n,i,j,s=0;
        scanf("%d",&n);
        for(j=3;j<=n;j++)
                for(i=1;i<j;i++)
                {
                if(j%i==0)
                {
                        s+=i;
                        if(j==s)
                                printf("%d\n",j);
                }
                }
        return 0;
}


一开始那个J的for循环没带,输入6,或者28  都可以输出  不过只能输出一个  不是输入位数以下所有符合条件的整数  所以又加了一个J的for循环   但是输入50  却一个输出都没有  看了很久  没想出来是什么问题

希望有人可以指导下
2015-12-14 20:41
码程小伙
Rank: 2
等 级:论坛游民
威 望:1
帖 子:27
专家分:81
注 册:2015-12-11
收藏
得分:0 
首先你的s在用了后没有清零,这样以前的数也会保留下来
2015-12-14 21:51
码程小伙
Rank: 2
等 级:论坛游民
威 望:1
帖 子:27
专家分:81
注 册:2015-12-11
收藏
得分:0 
所以你从三开始那么s保留的将不仅仅是j的因子还有以前的数的因子也在,所以不会有
2015-12-14 21:53
走在街上的猪
Rank: 2
等 级:论坛游民
帖 子:11
专家分:21
注 册:2015-10-11
收藏
得分:0 
回复 3楼 码程小伙
谢谢楼主指点,懂了

不过这题还一个问题,
把握解决了之后的代码发上来,希望可以帮下别人
#include<stdio.h>
int main()
{
        int n,i,j,s=0;
        scanf("%d",&n);
        for(j=3;j<=n;j++)
        {
            for(i=1;i<j;i++)
                {
                if(j%i==0)
                {
                        s+=i;
                }
                }
            if(j==s)
                printf("%d\n",j);
            s=0;
        }
        return 0;
}
收到的鲜花
  • 静夜思2015-12-15 23:33 送鲜花  50朵   附言:支持分享
2015-12-15 23:31
zhangyangzha
Rank: 2
等 级:论坛游民
威 望:1
帖 子:9
专家分:27
注 册:2015-12-15
收藏
得分:0 
回复 楼主 走在街上的猪
  if(j%i==0)这里有错,当不满足这个情况,没有输出值,要加ELSE 或者 加花括号  {}  来控制
2015-12-16 08:02
走在街上的猪
Rank: 2
等 级:论坛游民
帖 子:11
专家分:21
注 册:2015-10-11
收藏
得分:0 
回复 5楼 zhangyangzha
if 语句不一定就要加else  我要值只是输出值以下的的因子,加else 没有多大用处,还有,后来的代码可以实行
2015-12-16 10:12
快速回复:输出与其公因子之和相同的整数
数据加载中...
 
   



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

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