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日

悬赏问题

  • ¥15 关于大棚监测的pcb板设计
  • ¥20 sim800c模块 at指令及平台
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计