• *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.

    题目大意:

    编写程序判断一个给定的数字是否为“丑陋数” ugly number

    丑陋数是指只包含质因子2, 3, 5的正整数。例如,6, 8是丑陋数而14不是,因为它包含额外的质因子7

    注意,数字1也被视为丑陋数

    解题思路:

    将输入数重复除2, 3, 5,判断得数是否为1即可

    时间复杂度:

    num = 2^a * 3^b * 5^c * t,程序执行次数为 a + b + c,换言之,最坏情况为O(log num)

     1 public class Solution {
     2     public boolean isUgly(int num) 
     3     {
     4         if(num <= 0) return false;
     5         int [] prime = {2,3,5};
     6         for (int x:prime)
     7         {
     8             while(num%x==0)
     9             num/=x;
    10         }
    11         
    12         return num==1;
    13         
    14     }
    15 }

    reference: http://bookshadow.com/weblog/2015/08/19/leetcode-ugly-number/

  • 相关阅读:
    vue 中使用阿里iconfont彩色图标
    团队作业九
    团队作业八
    团队作业七
    第二篇
    第三篇
    第一篇
    beta冲刺计划安排
    团队作业六
    团队作业五
  • 原文地址:https://www.cnblogs.com/hygeia/p/4777547.html
Copyright © 2020-2023  润新知