roger666888 2008-09-11 08:08
浏览 584
已采纳

最多约数问题

 正整数x的约数是能够整除x的正整数,正整数x的约数个数计为div(x),例如1,2,5,10的约数即div(10)=4;
设a,b是两个正整数,a <=b,找出a和b之间的一个数,这个数含有约数个数最多!我原来的想法就是从a到b每一个数都进行一次判断,而且每次判断的时候都是是从2开始进行,例如:这个数是8,就这样判断:8%2,8%3,8%4,8%5,8%6,8%7, 再加上1和它本身两个,div(8)=4,但是这样效率太低了,我想用一个比较高效的算法实现,哪位能够指点一下!谢谢了!

  • 写回答

2条回答 默认 最新

  • xdspower 2008-09-11 11:03
    关注

    (未验证,一个思路)
    理论依据:一个数的约数除了1和本身外都是一个或者多个质因数的乘积,
    比如8=2×2×2
    又如12=2×2×3
    这样其约数就是质数因子的组合乘积(除重复的以外)和1以及自身。
    比如8有1, 2,2×2,8
    12有 1,2,3,2×2,2×3,12
    这样问题就转换成3部,
    1.对数字作质数分解
    2.对分解的质数作组合乘积,并剔除重复数进行计数
    3.比较计数结果得出解

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入