"超级丑陋的号码"澄清

时间:2018-03-28 21:21:08

标签: algorithm

写一个程序来找到第n个超级难看的数字。 超级丑陋的数字是正数,其所有素数因子都在大小为k的给定素数列表中。例如,[1,2,4,7,8,13,14,16,19,26,28,32]是给出素数= [2,7,13,19]的前12个超丑数的序列大小为4。

我不明白这个问题。这就是我需要帮助/澄清:

在上面的陈述中,为什么[1,2,4,7,8,13,14,16,19,26,28,32]是前12个超级丑陋的数字?这与给定的输入有什么关系 primes = [2,7,13,19]

2 个答案:

答案 0 :(得分:3)

2 -> 2
4 -> 2 * 2
7 -> 7
8 -> 2 * 2 * 2
13 -> 13
14 -> 2 * 7
16 -> 2 * 2 * 2 * 2
19 -> 19
26 -> 2 * 13
28 -> 2 * 2 * 7
32 -> 2 * 2 * 2 * 2 * 2

不确定为什么1在列表中。 ;)

编辑:问题陈述说1应该总是一个超级难看的数字。

答案 1 :(得分:2)

您将获得一个包含所选素数的列表:例如[2,7,13,19]

你必须做的是从1开始取每个自然整数(1,2,...),并计算其素因子。如果所有这些主要因素属于"授权"上面给出的素数,然后声明数字"超级丑陋"。

例如,14的素因子是[2, 7],它们都在参考列表中([2,7,13,19])。所以,14是超级丑陋的。

你的工作就是用这种方法找到第N个超级难看的数字。