zoukankan      html  css  js  c++  java
  • [LeetCode]65. 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. For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7.

    Note that 1 is typically treated as an ugly number.

    Credits:
    Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.

    Subscribe to see which companies asked this question

     
    解法:丑数被定义为其所有的质因子只有2、3和5的正数,另外1也是丑数。因此对输入正数将其质因子2、3、5都去掉,看看结果是否是1就可以了。
    class Solution {
    public:
        bool isUgly(int num) {
            if(num > 1) {
              while(num % 2 == 0) num /= 2;
              while(num % 3 == 0) num /= 3;
              while(num % 5 == 0) num /= 5;
            }
            return num == 1;
        }
    };

    另一种写法:

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

    第一种写法效率更高。

  • 相关阅读:
    supervisor集群管理
    ansible安装es集群
    ansible安装应用实例
    ansible任务控制
    ansible的playbook基础
    ansiblie命令基础
    iptables命令详解
    ansible基础理论
    shell动态修改yml配置文件
    JAVA8 Stream()遍历求某列总和
  • 原文地址:https://www.cnblogs.com/aprilcheny/p/4946870.html
Copyright © 2011-2022 走看看