今天和大家聊的问题叫做 丑数,我们先来看题面:https://leetcode-cn.com/problems/ugly-number/
An ugly number is a positive integer whose prime factors are limited to 2, 3, and 5.
Given an integer n, return true if n is an ugly number.
给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。
示例
示例 1: 输入:n = 6 输出:true 解释:6 = 2 × 3 示例 2: 输入:n = 8 输出:true 解释:8 = 2 × 2 × 2 示例 3: 输入:n = 14 输出:false 解释:14 不是丑数,因为它包含了另外一个质因数 7 。 示例 4: 输入:n = 1 输出:true 解释:1 通常被视为丑数。
解题
若当前数能整除2,3,5,则一直整除2,3,5,直到不能整除为止,判断最后的数是否等于1即可,如果不是1就说明还有其他因子
class Solution { public boolean isUgly(int num) { if(num <= 0) return false; while(num % 2 == 0) num /= 2; while(num % 3 == 0) num /= 3; while(num % 5 == 0) num /= 5; return num == 1; } }
好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。