| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 60650 人关注过本帖
标题:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编 ...
只看楼主 加入收藏
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
收藏
 问题点数:0 回复次数:13 
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
各位帮忙了 我自己写了个
可是运行之后只有6是不是就只有六啊
#include<stdio.h>
void main()
{
    int i,j,k,sum;
    for(i=2;i<=1000;i++)
    {
        sum=0;
        k=i;
        for(j=2;j<=i;j++)
        {
            while(i!=j)
            {
                if(i%j==0)
                {
                    sum+=j;
                    i=i/j;
                }
                else break;
            }
        }
            if(sum+1+i==k)
                printf("%d",k);
            i=k;


    }
}
搜索更多相关主题的帖子: 完数 之和 sum void int 
2007-12-12 23:02
beyond0702
Rank: 1
来 自: 桂 林
等 级:新手上路
帖 子:219
专家分:0
注 册:2007-11-17
收藏
得分:0 
#include<stdio.h>

void main()
{
    int i,j,sum=1;
 
    for(i=3;i<=1000;i++)
    {  sum=1;
       for(j=2;j<i;j++)
            if( i%j==0) sum+=j;
            if(i==sum)printf("%d,",i);
    }
}
2007-12-13 00:18
早起的月光
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-11-6
收藏
得分:0 
#include<stdio.h>
#include<math.h>

int main()
{
    int n,i,count,sum;
    int a[500];
    
    /*被测试的每一个数*/
    for(n=2;n<=1000;n++){
        count=0;
        sum=0;
        
        /*测试是否为因子*/    
        for(i=1;i<n;i++){
      
          /*fmod n/i 余数是0*/
            if(!(n%i)){
                   a[count++]=i;
                   sum=sum+i;
              }
        }
      
        if(n==sum){
            printf("%d its factors are ",n);
              
              for(i=0; i<count; i++)
                  printf("%d ",a[i]);
              printf("\n");
        }
    }
   
    return 0;
}
这是我做的,你的我再看看吧。思路很好。
2007-12-13 01:10
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
收藏
得分:0 
我自己的写错了 上面两个是对的 我在循环加错了
如8 应该是1+2+4 而我加的是1 +2  +2  +2 这肯定是错的了
给我的两个程序是对的

2007-12-16 12:08
岳C
Rank: 1
等 级:禁止发言
帖 子:354
专家分:0
注 册:2007-7-16
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2007-12-16 12:49
许一民
Rank: 1
来 自:江苏连云港
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-9-29
收藏
得分:0 
不错!
2007-12-16 20:43
yicanday5
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-3-14
收藏
得分:0 
回复 3楼 早起的月光
#include"stdio.h"

void main()
{
   int i, j;
  
   j = 1;

   for(i = 3; i < 1000; i++)
   {
      int sum = 0;
          while(j < i)
          {
             if(i % j ==0)
                 sum = sum + j;
                 j++;
          }
          j = 1;
          if(sum == i)
              printf("%d是完数\n", i);

    }
   
 }

我的算比较简单的啦,不过你的很完整,很详细,思路清晰,值得学习
2013-03-15 12:14
yicanday5
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-3-14
收藏
得分:0 
回复 3楼 早起的月光
#include"stdio.h"

void main()
{
    int i, j, count, k;
    int a[500];
    count = 0;
    j = 1;

    for(i = 3; i < 1000; i++)
    {
        int sum = 0;
        while(j < i)
        {
            if(i % j ==0)
            {
                sum = sum + j;
                a[count++] = j;
            }
            j++;
        }
        j = 1;
        if(sum == i)
        {
            printf("%d = 1", i);
            for(k = 0; k < count ; k++)
            {
                printf("+%d", a[k]);
            }
            printf("是完数");
            printf("\n");
        }
        count = 0;
    }
}


改进后的,没什么注释,惭愧,才新学
2013-03-15 12:31
西口径
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-3-17
收藏
得分:0 
#include <stdio.h>
int main(void)
{
    int i , j , sum = 0 ;

    for(i = 1 ; i <= 1000 ; i++)
    {
        for(j = i - 1 ; j > 0 ; j--)
        {
            if(i % j == 0)
                sum = sum + j ;
        }
        if(sum == i)
            printf("%d是完数 ", i);
        sum = 0 ;
    }

    return 0 ;
}
/*
在VC++6.0中的运行结果:
****************************************************
6是完数 28是完数 496是完数 Press any key to continue

****************************************************
*/
新手也来湊个热闹,大家相互学习!
2013-03-17 12:41
杨丽萍
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-3-10
收藏
得分:0 
回复 3楼 早起的月光
怎么办,不太能看懂
2014-03-10 16:52
快速回复:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+ ...
数据加载中...
 
   



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

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