写一个程序来找到第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]
答案 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个超级难看的数字。