leetcode-263-Ugly-Number

描述


Write a program to check whether a given number is an ugly number.

Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7.

Note that 1 is typically treated as an ugly number.

分析


判断一个数是不是只由2、3、5相乘得到。

解决方案1(C++)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
bool isUgly(int num) {
if(num <= 0) {
return false;
}
for(int i=2; i <= 5; i++) {
while(num%i == 0){
num /= i;
}
}
if(num != 1){
return false;
}
return true;
}
};

解决方案2(C)


1
2
3
4
5
6
7
8
9
10
bool isUgly(int num) {
if(num<=0) return false;
while(num>1){
if(num%2 == 0) num /= 2;
else if(num%3 == 0) num /= 3;
else if(num%5 == 0) num /= 5;
else return false;
}
return true;
}

解决方案2(Python)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution(object):
def isUgly(self, num):
"""
:type num: int
:rtype: bool
"""
if num < 0:
return False
while num % 2 == 0 and num != 0:
num /= 2
while num % 3 == 0 and num != 0:
num /= 3
while num % 5 == 0 and num != 0:
num /= 5
if num != 1:
return False
return True

相关问题


题目来源