题目描述
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.
题目大意:判断一个数是否是丑数,丑数的定义就是一个只包含2、3或5的公约数的正数(1属于丑数)
样例
Example 1:
Input: 6
Output: true
Explanation: 6 = 2 × 3
Example 2:
Input: 8
Output: true
Explanation: 8 = 2 × 2 × 2
Example 3:
Input: 14
Output: false
Explanation: 14 is not ugly since it includes another prime factor 7.
python解法
class Solution:
def isUgly(self, num: int) -> bool:
if num<1:return False
while not num % 2: num = num // 2
while not num % 3: num = num // 3
while not num % 5: num = num // 5
return True if num == 1 else False
Runtime: 40 ms, faster than 55.74% of Python3 online submissions for Ugly Number.
Memory Usage: 13.9 MB, less than 6.67% of Python3 online submissions for Ugly Number.
题后反思:无
C语言解法
bool isUgly(int num){
bool flag = true;
if (num < 1)
return false;
while(true)
{
flag = true;
if (num % 2 == 0)
{
num /= 2;
flag = false;
}
if (num % 3 == 0)
{
num/=3;
flag = false;
}
if (num % 5 == 0)
{
num /= 5;
flag = false;
}
if (num == 1)
return true;
if (flag)
break;
}
return false;
}
Runtime: 0 ms, faster than 100.00% of C online submissions for Ugly Number.
Memory Usage: 6.6 MB, less than 100.00% of C online submissions for Ugly Number.
题后反思:
文中都是我个人的理解,如有错误的地方欢迎下方评论告诉我,我及时更正,大家共同进步