| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3028 人关注过本帖
标题:一个自然数问题,新手小白求解答
只看楼主 加入收藏
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
回复 8楼 wmf2014
“最优”就不敢说了,能更优些就好了。
2016-06-05 07:59
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
回复 10楼 吹水佬
这样啊,记下所有最高的耗时应该忽略不计吧。其实我们找因数的方法差不多,都是到sqrt(n)循环,只是我只做偶数的判断,不用申请堆,加快了速度。
我觉得还是要用数学的方法,看我在9楼的补充分析,不知道能不能有启发。

能编个毛线衣吗?
2016-06-05 08:20
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
回复 12楼 wmf2014
用数学方法理论上是更科学更高效。
但要考虑的是:数学的理论式子直接在计算机是否有可操作性?也许先做成可能出现的因式模型,再发挥计算机的逻辑判断运算能力,不知可否?
2016-06-05 08:37
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
上面用到的复杂度为O(sqrt(n))算法,也算是数学方法。
数学理论证明过程:
假设:
x 为正整数
m 为正整数
使得 x * m = n
且 x > sqrt(n)
则 1 <= m <= sqrt(n)
否则 x * m > sqrt(n) * sqrt(n) = n 与 x * m = n 矛盾
即,如果存在两个正整数 x、m,使得 x * m = n,就 x、m 中必有一个在 [1, sqrt(n)]中。
2016-06-05 08:50
灰小机
Rank: 2
来 自:月亮
等 级:论坛游民
威 望:1
帖 子:28
专家分:42
注 册:2016-6-5
收藏
得分:0 
差不多大的偶数好像都比奇数的因子多,1,2除外
2016-06-05 13:18
快速回复:一个自然数问题,新手小白求解答
数据加载中...
 
   



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

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