Ugly Number(leetcode263)

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

Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.github

Example 1:code

Input: 6
Output: true
Explanation: 6 = 2 × 3

Example 2:leetcode

Input: 8
Output: true
Explanation: 8 = 2 × 2 × 2

Example 3:it

Input: 14
Output: false 
Explanation:  is not ugly since it includes another prime factor .147

Note:io

  1. 1 is typically treated as an ugly number.
  2. Input is within the 32-bit signed integer range: [−231,  231 − 1].
//用除法和取餘
public static boolean isUgly(int num) {

    boolean result = false;

    while(num >= 1) {
        boolean change = false;
        if (num % 2 == 0) {
            num /= 2;
            change = true;
        }
        if (num % 3 == 0) {
            num /= 3;
            change = true;
        }
        if (num % 5 == 0) {
            num /= 5;
            change = true;
        }
        if(num ==1){
            result = true;
            break;
        }
        if(!change){
            break;
        }
    }

    return result;
}

 

//換個方式
public static boolean isUgly2(int num) {
    if(num==1) {
        return true;
    }
    if(num==0) {
        return false;
    }
    while(num%2==0) {
        num=num>>1;
    }
    while(num%3==0) {
        num=num/3;
    }
    while(num%5==0) {
        num=num/5;
    }
    return num==1;
}

git:https://github.com/woshiyexinjie/leetcode-xinim

相關文章
相關標籤/搜索