LeetCode:Ugly Number

来源:互联网 发布:文明5美丽新世界 mac 编辑:程序博客网 时间:2024/06/05 20:23

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. For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7.

Note that 1 is typically treated as an ugly number.

题目的要求是检查一个数是否为丑数。

所谓丑数,其定义是一个只包含2、3、5素因子的正数。素因子指的是素树因子,比如数字8有因子1,2,4,8,但是8的素因子只有2。因此,6、8等为丑数,而14就不是丑数了,因为14有一个素因子7。

特别规定,1是一个特殊的丑数。

解题思路:对于要求解的数,循环判断是否能被2整除,若能,则除以2,若不能,则循环判断是否能被3整除,若能则除以3,以此类推。若最后结果等于1,则可以确定该数为丑数,否则不是丑数。

代码如下:

public class Solution {    public static boolean isUgly(int num) {        if (num <= 0) {            return false;        }                int[] divisors = {2, 3, 5};                for(int d : divisors) {            while (num % d == 0) {                num /= d;            }        }        return num == 1;    }}


0 0