标题:求个代码和解题思路
只看楼主
boy054
Rank: 2
来 自:广东
等 级:论坛游民
帖 子:95
专家分:11
注 册:2009-10-21
结帖率:86.67%
已结贴  问题点数:5 回复次数:14 
求个代码和解题思路
6=1+2+3;6= 1*2*3;编写个程序求100内整数中的像6这样的数?求算法
搜索更多相关主题的帖子: 思路 解题 代码 
2010-08-09 19:27
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:0 
算法:一个一个地试。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2010-08-09 19:37
promising
Rank: 3Rank: 3
来 自:上海
等 级:论坛游侠
帖 子:87
专家分:147
注 册:2009-8-31
得分:0 
楼主条件不明()
乘数不要求的话:
从4开始,素数不是,其余都是了~ n=2*(n/2)*1*1*……*1(共有 n/2-2 个1);

向前走着……
2010-08-09 19:57
boy054
Rank: 2
来 自:广东
等 级:论坛游民
帖 子:95
专家分:11
注 册:2009-10-21
得分:0 
回复 3楼 promising
8=1*2*2*2 ;8=1+2+2+2 ?
2010-08-09 20:06
真我
Rank: 4
等 级:业余侠客
威 望:1
帖 子:146
专家分:210
注 册:2010-7-14
得分:0 
呵呵,2楼是说:8=1*1*2*2*2
2010-08-09 21:20
真我
Rank: 4
等 级:业余侠客
威 望:1
帖 子:146
专家分:210
注 册:2010-7-14
得分:0 
如果这也行,我也说个
9=1*1*1*3*3 哈哈,
LZ的原题目应该是找一个数除了本身所有因子之和等于本身吧
2010-08-09 21:23
汐杨
Rank: 2
等 级:论坛游民
帖 子:27
专家分:13
注 册:2010-7-26
得分:0 
楼主要求的是“完数”吧!
一个数如果恰好等于它的因子之和,这个数就称为“完数”。
就像6的因子是:1、2、3;6=1+2+3;一样!
代码!
main()
{int m,i,j,s;
for(m=6;m<1000;m++)
{s=1;
for(i=2;i<m;i++)
if(m%i==0) s=s+i;
if(m-s==0)
{printf("%5d its fastors are 1 ",m);for(j=2;j<m;j++) if(m%j==0)
printf("%d ",j);printf("\n");}
}
}

main()
{int m,i,j,s;
for(m=6;m<1000;m++)
{s=m-1;
for(i=2;i<m;i++)
if(m%i==0) s=s-i;
if(s==0)
{printf("%5d its fastors are 1 ",m);for(j=2;j<m;j++) if(m%j==0)
printf("%d ",j);printf("\n");}
}
}



不过要一个数等于因子相加,又等于因子之和~~~~~~~~~
2010-08-09 21:26
狮子。
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:64
专家分:58
注 册:2010-8-1
得分:0 
回复 7楼 汐杨
原来叫完数啊,学习了~

当你小有成绩,打算沾沾自喜时。不知道有多少比你强的人正在埋头奋进!
2010-08-10 11:30
LSYHEFENG
Rank: 2
等 级:论坛游民
帖 子:112
专家分:71
注 册:2010-7-17
得分:0 
#include <stdio.h>
int main()
{
   int i,j,sum,ji;
   
     for(i=1;i<=100;i++)
       {
         sum=0;ji=1;
         for(j=1;j<i;j++)
            if(i%j==0)
              {
                sum+=j;
                ji*=j;
              }
         if(sum==i&&ji==i)
           printf("%d ",i);
       }      
   return 0;
}
2010-08-10 15:33
xjy080
Rank: 2
等 级:论坛游民
帖 子:55
专家分:78
注 册:2008-9-15
得分:0 
//完数是指恰好是小于它的各个因子之和的数。由此可知要判断一个数是不是完数,只要对它进行恰当的因式分解即可。
//代码:
#include<stdio.h>
int perfect(int n);

main()
{
        int  j,i, n;

        printf("Perfect numbers between 1 and 1000");
        j=0;
        for(i=2;i<=1000;i++)
        {
            if(n=perfect(i)>0)
            {
                printf("\n%5d=",i);
                for(j=1;j<=i;j++)
                {
                    if(i%j==0)
                    {
                        if(j>1)
                            printf(" + ");
                        printf("%5d",j);
                    }
                }
            }
        }
        getch();
}
int perfect(int n)
{
        int i, sum;
        sum=0;
        for(i=1;i<n;i++)
        {
            if(n%i==0)
                sum+=i;
        }
        if(sum==n)
            return sum;
            return 0;
}
2010-08-10 16:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-315243-1-1.html




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

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