leetcode 263. Ugly Number

来源:互联网 发布:mac os x u盘安装 编辑:程序博客网 时间:2024/05/22 05:04

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.

就是判断一个数据是不是丑数,直接做除法即可。

代码如下:

/* * 不要直接求所有的质数,然后寻找素数,最后作判断,太麻烦了 * 直接循环除法即可 * */class Solution{    public boolean isUgly(int num)     {        if(num<=0)            return false;        if(num==1)            return true;            while(num>=2 && num%2==0)            num=num/2;        while(num>=3 && num%3==0)            num=num/3;        while(num>=5 && num%5==0)            num=num/5;        return num==1? true :false;    }}

下面是C++的做法,不要直接寻找所有的质数,直接在原先的数据上做处理即可,代码如下:

#include <iostream>#include <vector>#include <map>#include <set>#include <queue>#include <stack>#include <string>using namespace std;class Solution {public:    bool isUgly(int num)     {        if (num <= 0)            return false;        else if (num == 1)            return true;        while (num > 1 && num % 2 == 0)            num /= 2;        while (num > 1 && num % 3 == 0)            num /= 3;        while (num > 1 && num % 5 == 0)            num /= 5;        return num == 1 ? true : false;    }};
原创粉丝点击