• Leecode刷题之旅-C语言/python-263丑数


    /*
     * @lc app=leetcode.cn id=263 lang=c
     *
     * [263] 丑数
     *
     * https://leetcode-cn.com/problems/ugly-number/description/
     *
     * algorithms
     * Easy (44.82%)
     * Total Accepted:    7K
     * Total Submissions: 15.7K
     * Testcase Example:  '6'
     *
     * 编写一个程序判断给定的数是否为丑数。
     * 
     * 丑数就是只包含质因数 2, 3, 5 的正整数。
     * 
     * 示例 1:
     * 
     * 输入: 6
     * 输出: true
     * 解释: 6 = 2 × 3
     * 
     * 示例 2:
     * 
     * 输入: 8
     * 输出: true
     * 解释: 8 = 2 × 2 × 2
     * 
     * 
     * 示例 3:
     * 
     * 输入: 14
     * 输出: false 
     * 解释: 14 不是丑数,因为它包含了另外一个质因数 7。
     * 
     * 说明:
     * 
     * 
     * 1 是丑数。
     * 输入不会超过 32 位有符号整数的范围: [−2^31,  2^31 − 1]。
     * 
     * 
     */
    bool isUgly(int num) {
        if (num <= 0){
                return false;
            }
            //如果5是当前num的因子
            while (num % 5 == 0) {
                num /= 5;
            }
            //如果3是当前num的因子
            while (num % 3 == 0) {
                num /= 3;
            }
            //如果2是当前num的因子
            while (num % 2 == 0) {
                num /= 2;
            }
            return num == 1;
        }

    其实就是如果有2,3,5的因子就一直分解下去。最后如果分解到1的话那么他就是丑数,否则不是。

    ---------------------------------------------------------------------------------------------------------------------------------

    python:

    #
    # @lc app=leetcode.cn id=263 lang=python3
    #
    # [263] 丑数
    #
    # https://leetcode-cn.com/problems/ugly-number/description/
    #
    # algorithms
    # Easy (44.82%)
    # Total Accepted:    7K
    # Total Submissions: 15.7K
    # Testcase Example:  '6'
    #
    # 编写一个程序判断给定的数是否为丑数。
    # 
    # 丑数就是只包含质因数 2, 3, 5 的正整数。
    # 
    # 示例 1:
    # 
    # 输入: 6
    # 输出: true
    # 解释: 6 = 2 × 3
    # 
    # 示例 2:
    # 
    # 输入: 8
    # 输出: true
    # 解释: 8 = 2 × 2 × 2
    # 
    # 
    # 示例 3:
    # 
    # 输入: 14
    # 输出: false 
    # 解释: 14 不是丑数,因为它包含了另外一个质因数 7。
    # 
    # 说明:
    # 
    # 
    # 1 是丑数。
    # 输入不会超过 32 位有符号整数的范围: [−2^31,  2^31 − 1]。
    # 
    # 
    #
    class Solution:
        def isUgly(self, num: int) -> bool:
            for p in 2, 3, 5:
                while num % p == 0 < num:
                    num /= p
            return num == 1
  • 相关阅读:
    Delphi XE5 android 蓝牙通讯传输
    Delphi XE5 android toast
    Delphi XE5 android openurl(转)
    Delphi XE5 如何设计并使用FireMonkeyStyle(转)
    Delphi XE5 android 捕获几个事件
    Delphi XE5 android listview
    Delphi XE5 android 黑屏的临时解决办法
    Delphi XE5 android popumenu
    Delphi XE5 android 获取网络状态
    Delphi XE5 android 获取电池电量
  • 原文地址:https://www.cnblogs.com/lixiaoyao123/p/10557305.html
Copyright © 2020-2023  润新知