#include #include /* 如果 `n` 为丑数则按数学定义可表示为 `n = 2^a * 3^b * 5^c` 的形式, 只需反复除以 2、3、5 即可。当 `a = b = c = 0` 时 `a = 1`。 */ bool isUgly(int n) { if (n <= 0) return false; int num[] = {2, 3, 5}; for (int i = 0; i < 3; i++) { while (n % num[i] == 0) n /= num[i]; } return n == 1; } int main() { assert(isUgly(6) == 1); assert(isUgly(1) == 1); assert(isUgly(14) == 0); assert(isUgly(8) == 1); return 0; }