我的一个朋友正在面试一份工作.其中一个面试问题让我思考,只想得到一些反馈.
有2个非负整数:i和j.给定以下等式,找到(最优)解决方案以对输出进行排序的方式迭代i和j.
2^i * 5^j
Run Code Online (Sandbox Code Playgroud)
所以前几轮看起来像这样:
2^0 * 5^0 = 1
2^1 * 5^0 = 2
2^2 * 5^0 = 4
2^0 * 5^1 = 5
2^3 * 5^0 = 8
2^1 * 5^1 = 10
2^4 * 5^0 = 16
2^2 * 5^1 = 20
2^0 * 5^2 = 25
Run Code Online (Sandbox Code Playgroud)
尽我所能,我看不到一个模式.你的意见?
我有一组素数,我必须使用递增顺序的那些素因子生成整数.
例如,如果集合是p = {2,5}那么我的整数应该是1,2,4,5,8,10,16,20,25 ......
有没有有效的算法来解决这个问题?
常数是均匀分配60的幂的数字.例如,60 2 = 3600 = 48×75,因此48和75都是60的幂的除数.因此,它们也是常规数.
这是四舍五入到下一个幂的延伸.
我有一个整数值N,它可能包含大的素因子,我想把它四舍五入到只由小素因子组成的数字(2,3和5)
例子:
f(18) == 18 == 21 * 32f(19) == 20 == 22 * 51f(257) == 270 == 21 * 33 * 51找到满足此要求的最小数字的有效方法是什么?
涉及的值可能很大,所以我想避免枚举从1开始的所有常规数字或维护所有可能值的数组.
algorithm math prime-factoring hamming-numbers smooth-numbers
我正在尝试生成可以用表格表示的所有倍数的列表,其中 a、b 和 c 是整数。我尝试了以下方法,
[ a * b * c | a <- map (2^) [0..], b <- map (3^) [0..], c <- map (5^) [0..] ]
Run Code Online (Sandbox Code Playgroud)
但它只列出了 5 的幂,而从未列出 2 或 3。
编辑:抱歉,看来我没有足够澄清这个问题。我想要的是一个有序的无限列表,虽然我可以对有限列表进行排序,但我觉得好像可能有一个更有效的解决方案。