p25 判断一个数是否为丑数 (leetcode 263)

一:解题思路

丑数的定义为:只包含质因数为2,3,5的正整数,其中1作为特例也算作丑数。这个题目比较简单,首先需要判断这个数是否小于等于0,如果是肯定不是丑数,然后需要连续的去除以2,3,5,看最后的得到的结果是否为1。如果最后得到的结果是为1这说明这个数为丑数。

Time:O(m+n+l),Space:O(1)

二:完整代码示例 (C++版和Java版)

C++版:

 class Solution 
 {
 public:
     bool isUgly(int num) 
     {
         if (num <= 0) return false;

         while (num % 2 == 0) num /= 2;
         while (num % 3 == 0) num /= 3;
         while (num % 5 == 0) num /= 5;

         return (num==1);
     }
 };

Java版:

class Solution 
{
    public boolean isUgly(int num) 
    {
           if(num<=0) return false;
           
           while(num%2==0) num/=2;
           while(num%3==0) num/=3;
           while(num%5==0) num/=5;
           
           return (num==1);
    }
}

 

posted @ 2020-03-13 14:00  repinkply  阅读(378)  评论(0)    收藏  举报