[趣题]生成多个质数的幂积序列
摘要:给定三个质数 3,5,7,需要得到从小到大排列的前k个合数,只能包含这三个质因子。比如k=4,那么结果是1,3,5,7初看上去感觉有点乱,貌似没有办法简单的根据第k-1个数计算第k个数,但是很显然的是,第k个数只能是用前k-1个数中的某个数乘以3或者5或者7得到。这样,我们可以认为存在3个子序列,分别对当前序列的元素乘以3或5或7,后续元素是这三个子序列归并得到,每个子序列有一个索引标示当前需要操作的元素,序列里的下一个元素总是选择这三个子序列的当前元素中最小的值,选中之后,子序列当前元素后移一个。然后重复此操作,就可以得到K个元素,算法复杂度O(n)。#include #include us
阅读全文
posted @ 2013-10-08 00:19
浙公网安备 33010602011771号