0
点赞
收藏
分享

微信扫一扫

LeetCode丑数

悲催博士僧 2022-04-25 阅读 56
java

丑数

丑数 就是只包含质因数 2、3 和 5 的正整数。

给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。

一开始的思路是先求出这个数的所有质数,再将所有质数与2,3,5进行比较,但实现起来不那么顺利,看了题解。
通过数学方法可知,质数只包含2,3,5,说明是由2,3,5构成的数,其中2,3,5的个数不确定,所以每次判断是否能将2,3,5整除,然后再变化值,直到最后的值变为1,说明是符合要求的数,否则就不是。
当然,如果n小于等于0,当然不是丑数。

class Solution {
    public boolean isUgly(int n) {
        boolean flag = false;
        if(n<=0)
            return false;
        int[] a = {2,3,5};
        for(int i=0;i<a.length;i++)
        {
            while(n%a[i]==0){
                n/=a[i];
            }
        }
        if(n==1)
            flag=true;
        return flag;

    }
}

果然,做题之前要先分析数字的特征,算法尽头是数学啊。

举报

相关推荐

0 条评论