• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

黄文超

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

【LeetCode每日一题】丑数

丑数

1、题目描述

给你一个整数 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、算法思想

核心思想:
	1、通过题目描述,丑数就是能被2,3,5这三个数除断的数(1特殊情况除外)
	2、那么1除外的所有丑数都能被2,3,5整除,也就是说 丑数=(2^a)*(3^b)*(5^c)
具体实现:
	1、传递过来的n先除以2,除到不能再除了(也就是没有余数)
	2、再除以3,除到不能再除了
	3、再除以5,除到不能再除了
	4、如果最后n==1的话说明都除尽了,如果不等于1,说明没除尽。

3、代码实现

package com.java;

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

posted on 2021-04-10 09:35  黄文超  阅读(250)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3