- 给定一个整数,判断是否为丑数
- 思路:
- 唯一分解定理:任何一个正整数,都能分解为若干个质数的乘积
- 即
x
=
p
1
c
1
∗
p
2
c
2
∗
.
.
.
∗
p
k
c
k
x=p_1^{c_1}*p_2^{c_2}*...*p_k^{c_k}
x=p1c1∗p2c2∗...∗pkck
- 其中 x x x为正整数, p i p_i pi为质数
- 即
x
=
p
1
c
1
∗
p
2
c
2
∗
.
.
.
∗
p
k
c
k
x=p_1^{c_1}*p_2^{c_2}*...*p_k^{c_k}
x=p1c1∗p2c2∗...∗pkck
- 就看该数分解的这若干个质数是否只有2、3、5
- 唯一分解定理:任何一个正整数,都能分解为若干个质数的乘积
bool isUgly(int n) {
if(n <= 0) return false;
while(n%2 == 0) n/=2;
while(n%3 == 0) n/=3;
while(n%5 == 0) n/=5;
return (n == 1);
}