| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 482 人关注过本帖
标题:菜鸟求助!!!!
只看楼主 加入收藏
s359817535
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-5-14
收藏
 问题点数:0 回复次数:3 
菜鸟求助!!!!
这是一道求一个数除自身以外所以因子相加的和.如20=1+2+4+5+10;8=1+2+4;数的范围是1-500000;
下面是我写的2道程序..为什么第1个会超时,而第2个没有.....(第2个是我从网上抄的).时间要求5秒.
第一个:
#include <stdio.h>
main()
{ int i,j,n,m,s;
  while(scanf("%d",&n)!=EOF)
  {
    for(i=0;i<n;i++)
    { scanf("%d",&m);
      s=1;
      for(j=2;j*j<=m;j++)
      {
         if(m%j==0)
           if(j*j<m)  s=s+j+m/j;
           else s+=j;
       }
       printf("%d\n",s);
    }
  }
}
第二个:
#include <stdio.h>
main()
{
    int i,j,n,s2,m,k,s,x,s1;
    while(scanf("%d",&n)!=EOF)
    {
        for(i=0;i<n;i++)
        {
           k=0;s2=1;
            scanf("%d",&m);
            x=m;
            for(j=2;j*j<=m;j++)
            {
             if(m%j==0)
             {
              s=1;s1=1;
              while(m%j==0)
              {
               m/=j;
               s1*=j;
               s+=s1;
              }
              s2*=s;
              }
            }
            if(m>1) s2*=(m+1);
            printf("%d\n",s2-x);
        }
    }
}
搜索更多相关主题的帖子: scanf 
2008-05-15 16:14
布拉莫斯
Rank: 1
来 自:中国太平洋舰队
等 级:新手上路
帖 子:169
专家分:0
注 册:2007-3-31
收藏
得分:0 
20=1+2+4+5+10   ?  ?
8=1+2+4   ?  ?

真理往往掌握在少数人手中,可现实却是少数服从多数!
2008-05-15 16:53
xnm890325
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:63
专家分:0
注 册:2008-5-10
收藏
得分:0 
应该是除自身以外的所有约数相加吧???
2008-05-15 16:54
s359817535
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-5-14
收藏
得分:0 
恩~是的。.比如输入一个8..输出7...7=1+2+4;
2008-05-15 18:51
快速回复:菜鸟求助!!!!
数据加载中...
 
   



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

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