丑数
题目
写一个程序来检测一个整数是不是丑数。
丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数以为他包含了质因子 7。注意事项
可以认为 1 是一个特殊的丑数。样例
给出 num = 8,返回 true。
给出 num = 14,返回 false。题解
由于丑数只有2,3,5三个质因子,那么我们就拿该数字连续除以这三个因子。如果最后这个数变为1则为丑数,否则不是。
public class Solution {
/**
* @param num an integer
* @return true if num is an ugly number or false
*/
public boolean isUgly(int num) {
while (num >= 2 && num % 2 == 0)
{
num /= 2;
}
while (num >= 3 && num % 3 == 0)
{
num /= 3;
}
while (num >= 5 && num % 5 == 0)
{
num /= 5;
}
return num == 1;
}
}
Last Update 2016.9.18