LintCode:517 · 丑数

2022-01-14  本文已影响0人  alex很累

问题描述

写一个程序来检测一个整数是不是丑数。
丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数因为他包含了质因子 7。

样例

样例1:

输入: num = 8 
输出: true
解释:
8=2*2*2

样例2:

输入: num = 14 
输出: false
解释:
14=2*7 

解题思路

这道题比较简单,检测下是否只包含质因子 2, 3, 5。
写一个循环,不停地用2或3或5对这个整数就行整除,如果最后结果为1,这个数就是丑数;如果中间不是1且不能再整除了,那么这个数不是丑数。

代码示例

public class Solution {
    /**
     * @param num: An integer
     * @return: true if num is an ugly number or false
     */
    public boolean isUgly(int num) {
        // write your code here
        if (num <= 0) {
            return false;
        }
        while (num != 1) {
            if (num % 2 == 0) {
                num = num / 2;
            } else  if (num % 3 == 0) {
                num = num / 3;
            } else  if (num % 5 == 0) {
                num = num / 5;
            } else{
                 return false;
            }     
        }
        return true;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读