丑数 就是只包含质因数 2、3 和 5 的正整数。
给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。
示例 1:
输入:n = 6
输出:true
解释:6 = 2 × 3
来源:力扣(LeetCode)
链接:
一开始的思路是先求出这个数的所有质数,再将所有质数与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;}
}
果然,做题之前要先分析数字的特征,算法尽头是数学啊。
本文发布于:2024-02-03 23:47:43,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170697858351777.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |