找回密码
 欢迎注册
查看: 9534|回复: 5

[提问] 如何寻找最接近根号n的n的因子

[复制链接]
发表于 2012-2-14 12:31:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
给定一个整数n的分解式,如何寻找最接近的整数a和b,使ab=n?
这个问题可以等价的表述成:如何在一个集合(可以有相同的元素,下同)里提取一个子集,使得其元素之和最接近原集合元素之和的一半?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-2-14 13:12:03 | 显示全部楼层
本帖最后由 liangbch 于 2012-2-14 13:18 编辑

若$N=(P_1^{e_1})(P_2^{e_2})...(P_n^{e_n})$
则N的因子个数为$(e_1+1)(e_2+1)...(e_n+1)$
算法,将n的所有因子找出来,并排序,取中间的2个。
如60=$2^2xx3^1xx5^1$,则60有$(2+1)xx(1+1)xx(1+1)=12$个因子,它们是1,2,3,4,5,6,10,12,15,20,30,60. 居于中间的2个因子是6和10
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-2-14 13:20:22 | 显示全部楼层
给定一个整数n的分解式,如何寻找最接近的整数a和b,使ab=n?
这个问题可以等价的表述成:如何在一个集合(可以有相同的元素,下同)里提取一个子集,使得其元素之和最接近原集合元素之和的一半?
lsrong314 发表于 2012-2-14 12:31

这两个问题并不等价?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-2-14 13:33:37 | 显示全部楼层
3# liangbch
取对数就变成在ei个log(pi),i=1,2……里提取元素的问题
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-2-14 13:38:41 | 显示全部楼层
2# liangbch
2#方法的另一种描述,若f是n的一个因子,且f<=sqrt(n), 所有满足条件的f构成一个数组a,则x1=MAX(a), x2=n/x1, MAX(a)函数返回数组a中各个元素的最大值. x1,x2即为答案。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-24 20:29 , Processed in 0.044283 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表