m0_74931865 2022-11-06 16:10 采纳率: 60%
浏览 27
已结题

初学者想知道哪里运行超时了

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
我想要达到的结果

img


#include<stdio.h>
#include<math.h>
void main()
{
int m,n,a=0,b=0,i=0,j,sum=0;
scanf("%d %d",&m,&n);
for(a=m;a<=n;a++)
{sum=0;i=0;
for(b=1;b<a;b++)
{
if(a%b==0)
{
sum+=b;
}

    }i=0;
 for(b=1;b<sum;b++)
 {
     if(sum%b==0)
         i+=b;
 }
 if(i==a&&sum<a)
     printf("%d %d\n",sum,a);
 else continue;
}

}

img

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2022-11-06 16:17
    关注

    输入的两个数没有取值范围吗?
    你这个计算质因数的效率比较低

    #include<stdio.h>
    #include<math.h>
    void main()
    {
        int m,n,a=0,b=0,i=0,j,sum=0;
        scanf("%d %d",&m,&n);
        for(a=m;a<=n;a++)
        {
            sum=1;i=0;
            int k = sqrt(a*1.0);
            for(b=2;b<=k;b++)
            {
                if(a%b==0)
                {
                    sum+=b;
                    if(b*b != a)
                        sum += a/b;
                }
            }
            i=1;
            k = sqrt(sum*1.0);
            for(b=2;b<=k;b++)
            {
                if(sum%b==0)
                {
                    i+=b;
                    if(b*b != sum)
                        i += sum/b;
                }
            }
            if(i==a&&sum<a)
                printf("%d %d\n",sum,a);
            else 
                continue;
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月14日
  • 已采纳回答 11月6日
  • 创建了问题 11月6日

悬赏问题

  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)