| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3675 人关注过本帖
标题:求合数的问题
只看楼主 加入收藏
kuilovelei
Rank: 1
等 级:新手上路
帖 子:25
专家分:3
注 册:2012-10-22
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:15 
求合数的问题
编一个程序,打印输出6--1000范围内的所有的合数。所谓合数是指一个数等于其诸因子之和的数。例如,6=1+2+3,28=1+2+4+7+14,则6、28就是合数。   
        谢谢 各位了 !
2012-11-04 19:17
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:0 
#include <stdio.h>

int main()
{
    int i;
    for (i=6; i<=1000; i++) {
        int j;
        for (j=2; j<i/2; j++) {
            if (!(i%j)) {
                printf("%d\n", i);
                break;
            }
        }
    }
    return 0;
}

这些应该自己练的,最基本的
2012-11-04 19:31
小小小火柴
Rank: 5Rank: 5
来 自:江西赣州
等 级:职业侠客
威 望:3
帖 子:141
专家分:337
注 册:2012-9-28
收藏
得分:0 
   版主的程序,确定是正确的?貌似输出不对……

   好好学习!
2012-11-04 20:01
we1194848357
Rank: 2
等 级:论坛游民
帖 子:4
专家分:11
注 册:2012-11-4
收藏
得分:10 
楼主说的是输出6-1000的完全数吧,2楼的代码是输出合数的代码,输出完全数的代码是
#include <stdio.h>
int main()
{
    int i;
    for (i=6; i<=1000; i++)
    {
        int j,sum=1;
        for (j=2; j<i; j++)
        {
            if (!(i%j))
            {
                sum=sum+j;   
            }
        }
        if(i==sum)
        {
            printf("%d\n", i);
        }
        
    }
    return 0;
}
2012-11-04 21:40
小旭哥
Rank: 2
等 级:论坛游民
帖 子:106
专家分:72
注 册:2012-11-4
收藏
得分:0 
回复 楼主 kuilovelei
我只说思路:
用一层循环遍历所有数。在该循环中定义一个变量total = 0;

用内循环查找当前数的所有因子,判断num % i 是否等于0,若=0,则i其是因子,就将i加到一个变量中, 如total。该层循环的结束条件是i<num。比较total和该数,如相等则输出

2012-11-04 21:53
小小小火柴
Rank: 5Rank: 5
来 自:江西赣州
等 级:职业侠客
威 望:3
帖 子:141
专家分:337
注 册:2012-9-28
收藏
得分:0 
   ……楼主要求的是完全数。合数有无数个,除了2的偶数都是!版主写的是合数!

   好好学习!
2012-11-04 21:54
kuilovelei
Rank: 1
等 级:新手上路
帖 子:25
专家分:3
注 册:2012-10-22
收藏
得分:0 
回复 2楼 遗矢的老人
输出好像是不对,最小的数是652,应该是6的
2012-11-04 22:31
kuilovelei
Rank: 1
等 级:新手上路
帖 子:25
专家分:3
注 册:2012-10-22
收藏
得分:0 
回复 5楼 小旭哥
这个我知道 就是这个循环理不清,
2012-11-04 22:32
kuilovelei
Rank: 1
等 级:新手上路
帖 子:25
专家分:3
注 册:2012-10-22
收藏
得分:0 
回复 4楼 we1194848357
我试了一下 ,输出是6  28  496    应该对的  谢谢啊
2012-11-04 22:34
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:0 
回复 3楼 小小小火柴
  打合数没错的,只是我刚才没注意看后面就写成合数了,可能没法显示完,就是换行太多了,要不\n改成\t就可以了,楼主的意思叫完全数或完美数,不过上面有人实现了我就不写了,我都含羞了!!!

[ 本帖最后由 遗矢的老人 于 2012-11-4 22:42 编辑 ]
2012-11-04 22:41
快速回复:求合数的问题
数据加载中...
 
   



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

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