[LeetCode] 263. Ugly Number 丑陋数

2021年09月15日 阅读数:3
这篇文章主要向大家介绍[LeetCode] 263. Ugly Number 丑陋数,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

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

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

Example 1:python

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

Example 2:post

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

Example 3:url

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

Note:code

  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质数因子的数。htm

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

Java:ip

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

Python:get

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 题目汇总