编写一个程序判断给定的数是否为丑数。
丑数就是只包含质因数 2, 3, 5
的正整数。
示例 1:
输入: 6 输出: true 解释: 6 = 2 × 3
示例 2:
输入: 8 输出: true 解释: 8 = 2 × 2 × 2
示例 3:
输入: 14 输出: false 解释:14
不是丑数,因为它包含了另外一个质因数7
。
说明:
1
是丑数。- 输入不会超过 32 位有符号整数的范围: [−231, 231 − 1]。
思路:每次拿2,3,5依次去除num,如果最后的余数是1,就返回true,否则返回false。其次,在3个数除的过程中,如果三个除数都无法整除,那么直接返回false。
参考代码:
bool isUgly(int num) { while (num >= 2) { if (num % 2 == 0) { num = num / 2; } else if (num % 3 == 0) { num = num / 3; } else if (num % 5 == 0) { num = num / 5; } else { return false; } } return num == 1; }