| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 317 人关注过本帖
标题:求助,为什么多了一个24
取消只看楼主 加入收藏
k1868548
Rank: 1
来 自:电子科大
等 级:新手上路
帖 子:6
专家分:4
注 册:2011-10-24
结帖率:0
收藏
 问题点数:0 回复次数:1 
求助,为什么多了一个24
求1000以内的完数 并显示因子

我写的代码
程序代码:
#include <stdio.h> 
#include <conio.h>

int main()
{
    int a,b,y;

 for(a=1;a<1000;a++)

 {
     y=0;
     for(b=1;b<=a/2;b++)
    {    
            if(a%b==0)
            {
                y+=b;
                if(y==a)
             {
                printf("%d\n",a);
                for(b=1;b<=a/2;b++)
                {
                     if(a%b==0)
                         {
                             printf("因子为%d\n",b);
                         }
                }
                    
             
              }
                
             }
   
     }

 }

 getch();

 return 0;
}



显示结果 多了24


1000以内的 只有

    6
    1    2    3
   28
    1    2    4    7   14
  496
    1    2    4    8   16   31   62  124  248


求解  谢谢了!~

[ 本帖最后由 k1868548 于 2011-10-30 12:53 编辑 ]
2011-10-30 12:47
k1868548
Rank: 1
来 自:电子科大
等 级:新手上路
帖 子:6
专家分:4
注 册:2011-10-24
收藏
得分:0 
  自己找到原因了  最外面的for循环 应该直接做完 然后在做下面的IF

这是改后的 代码 运行就对了
程序代码:
#include <stdio.h> 
#include <conio.h>

int main()
{
    int a,b,y;

 for(a=1;a<1000;a++)

 {
     y=0;
     for(b=1;b<=a/2;b++)
    {    
            if(a%b==0)
            {
                y+=b;
            }
     }
                if(y==a)
             {
                printf("%d\n",a);
                for(b=1;b<=a/2;b++)
                {
                     if(a%b==0)
                         {
                             printf("因子为%d\n",b);
                         }
                }
                    
             
              }
                
             


 }

 getch();

 return 0;
}


图片附件: 游客没有浏览图片的权限,请 登录注册
2011-10-30 12:57
快速回复:求助,为什么多了一个24
数据加载中...
 
   



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

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