面试题:丑数题目:我们把只包含因子2、3和5的数

13 查阅
面试题:丑数题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。求从小到大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做第一个丑数。

参考答案:

正确答案:

◆逐个判断每个整数是不是丑数的解法,直观但不够高效
所谓一个数m是另一个数n的因子是指n能被m整除也就是n%m==0。根据丑数的定义,丑数只能被2、3和5整除。也就是说如果一个数能被2整除,我们把它连续除以2;如果能被3整除,就连续除以3;如果能被5整除,就除以连续5。如果最后我们得到的是1,那么这个数就是丑数,否则不是。
因此我们可以写出T面的函数来判断一个数是不是丑数:
bool IsUgly (int number)
{

因子