zoukankan      html  css  js  c++  java
  • [LeetCode] 263. Ugly Number 丑陋数

    Write a program to check whether a given number is an ugly number.

    Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.

    Example 1:

    Input: 6
    Output: true
    Explanation: 6 = 2 × 3

    Example 2:

    Input: 8
    Output: true
    Explanation: 8 = 2 × 2 × 2
    

    Example 3:

    Input: 14
    Output: false 
    Explanation: 14 is not ugly since it includes another prime factor 7.
    

    Note:

    1. 1 is typically treated as an ugly number.
    2. Input is within the 32-bit signed integer range: [−231,  231 − 1].

    写一个程序能判断一个数是不是丑陋数,丑陋数是只含有2,3,5质数因子的数。

    解法:循环2,3,5,然后不停的除以这些质数,如果能整除就继续,最后剩余的数字是1的话就是丑陋数。

    Java:

    for (int i=2; i<6 && num>0; i++)
        while (num % i == 0)
            num /= i;
    return num == 1;
    

    Python:

    class Solution:
        # @param {integer} num
        # @return {boolean}
        def isUgly(self, num):
            if num == 0:
                return False
            for i in [2, 3, 5]:
                while num % i == 0:
                    num /= i
            return num == 1  

    Python:

    for p in 2, 3, 5:
        while num % p == 0 < num:
            num /= p
    return num == 1
    

    C++:  

    for (int i=2; i<6 && num; i++)
        while (num % i == 0)
            num /= i;
    return num == 1; 

    C++:

    class Solution {
    public:
        bool isUgly(int num) {
            while (num >= 2) {
                if (num % 2 == 0) num /= 2;
                else if (num % 3 == 0) num /= 3;
                else if (num % 5 == 0) num /= 5;
                else return false;
            }
            return num == 1;
        }
    };
    

    C++:

    class Solution {
    public:
        bool 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;
        }
    };
    

       

    类似题目:

    [LeetCode] 264. Ugly Number II 丑陋数 II

    [LeetCode] 313. Super Ugly Number 超级丑陋数

    All LeetCode Questions List 题目汇总

  • 相关阅读:
    b站尚硅谷MySQL笔记(婷姐初级,周阳高级)
    word--公式添加编号
    excel--长数字显示问题
    R语言--蒙特卡洛计算定积分
    数学
    数学
    Computer Science
    Computer Science
    Computer Science
    元学习
  • 原文地址:https://www.cnblogs.com/lightwindy/p/9758197.html
Copyright © 2011-2022 走看看