shooting_star77 2022-11-09 20:17 采纳率: 92.3%
浏览 25
已结题

这里显示运行超时了,请问该怎么解决

img

img


可以在枚举的基础上优化吗
还是说只能换算法,如果是,应该怎么操作?

  • 写回答

1条回答 默认 最新

  • wanghui0380 2022-11-10 01:03
    关注

    写个C#你自己看(啥语言无所谓,意思都是一个意思,能看懂就可以自己改)

    int n = 2_000_000_000;
    //int n = 4;
    
    //题目特殊,可以优化
    //n是偶数,那么除了 2+2这个特殊玩意,任何偶数都可以拆成 奇数+奇数,所有后续我们用奇数判定
    //在n是偶数情况下,2x+2y 除了x,y为1的情况,其他情况绝对不会是2个素数
    //而2+2=4有恰恰有1+3的解,而且符合题目要求的最小解
    for (int i = 1; i < n/2; i=i+2)
    {
        int j = n - i;
        if (isn(i, j))
        {
           // 请输出i,j
           break;
        }
    }
    
    bool isn(int a, int b)
    {
        bool res = true;
        //因为进来的都是奇数,所以2无需判定,同时能被偶数整除的就一定能被2整除,就一定不是奇数(前面4的情况讨论过1+3就有结果,所以这里步长可以优化成2)
        for (int i = 3; i <Math.Sqrt(b); i=i+2)
        {
            if (i <= a&&a%i==0)
            {
                return false;
            }
            if (b%i==0)
            {
                return false;
            }
        }
        return res;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月8日
  • 已采纳回答 1月31日
  • 创建了问题 11月9日

悬赏问题

  • ¥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 用土力学知识进行土坡稳定性分析与挡土墙设计