Ugly Number

Total Accepted: 20760 Total Submissions: 63208 Difficulty: Easy

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.

class Solution {
public:
bool isUgly(int num) {
if (num == || num == || num == || num == ) return true;
vector<int> u = {,,};
for (int i = ; i < u.size(); i++) {
if (num % u[i] == ) {
int p = num / u[i];
if (p == || p == || p == || !isPrime(p) && isUgly(p)) return true;
}
}
return false;
} bool isPrime(int num) {
for (int i = ; i*i <= num; i++) {
if (num % i == ) return false;
}
return true;
}
};

这题花了一番功夫,主要卡在质因数分解上。我的思路是用2,3,5去整除num,如果结果不是2,3,5而且不是其他任何质数的话,它就是ugly的。但是这个思路有个问题,以28为例子,用2除的得14,因此14不是2,3,5中的一个同时也不是质数,所以被判为了ugly。但事实是14还可以被分解为2 x 7, 而7 是质数,因此7 也是28的一个质因子,因此28不是ugly数,怎么办呢,灵机一抖的我想到如果再保证除2,3,5以后的数是ugly的不就解决了。。。所以我在超长的if 语句后面加上isUgly的递归调用,结果证明这个思路是正确的 Accepted.

[LeetCode] Ugly Number的更多相关文章

  1. 力不从心 Leetcode(ugly number heap) 263, 264,313

    Leetcode ugly number set (3 now) new ugly number is generated by multiplying a prime with previous g ...

  2. [LeetCode] Ugly Number II 丑陋数之二

    Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors ...

  3. [LeetCode] Ugly Number 丑陋数

    Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers ...

  4. [LeetCode] Ugly Number II

    Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors ...

  5. [LeetCode] Ugly Number II (A New Question Added Today)

    Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors ...

  6. [LeetCode] Ugly Number (A New Question Added Today)

    Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers ...

  7. LeetCode——Ugly Number

    Description: Write a program to check whether a given number is an ugly number. Ugly numbers are pos ...

  8. LeetCode() Ugly Number II 背下来!

    一个别人,非常牛逼的思路,膜拜了!orz!!!! vector <int> results (1,1); int i = 0, j = 0, k = 0; while (results.s ...

  9. LeetCode Ugly Number (简单题)

    题意: 判断是一个数的质因子仅含有2,3,5这3个. 思路: 因子2比较容易解决,num/=num-(num&num-1)就可以了.3和5的需要通过循环来另判. C++ class Solut ...

随机推荐

  1. Python中sorted()方法

    Python中sorted()方法的用法 1.先说一下iterable,中文意思是迭代器. Python的帮助文档中对iterable的解释是:iteralbe指的是能够一次返回它的一个成员的对象.i ...

  2. ThinkPHP 知识点链接

    1.Thinkphp3.2 行为扩展和插件(Hook)       http://www.thinkphp.cn/topic/21323.html 2.ThinkPHP3.1.3的单字母函数汇总   ...

  3. vmware-question

    1.网卡修改序号ip link set eth3 name eth02.解决克隆虚拟机后网卡设备无法识别启动问题的方法******************************/etc/udev/r ...

  4. PHP+Hadoop实现数据统计分析

    记一次完全独立完成的统计分析系统的搭建过程,主要用到了PHP+Hadoop+Hive+Thrift+Mysql实现 安装 Hadoop安装: http://www.powerxing.com/inst ...

  5. HBase独立集群部署

    HBase是分布式.面向列式存储的开源数据库,来源于Google的论文BigTable,HBase运行于Hadoop平台之上,不同于一般的关系数据库,是一个适合非结构化数据存储的分布式数据库 安装Hb ...

  6. zsh 通信脚本

    server #!/bin/zsh #zsh TCP server script zmodload zsh/net/tcp #listening port ztcp -l #This is a fil ...

  7. nohup后台运行jar

    nohup 用途:LINUX命令用法,不挂断地运行命令.  语法:nohup Command [ Arg ... ] [ & ]  描述:nohup 命令运行由 Command 参数和任何相关 ...

  8. Android异步加载访问网络图片-解析json

    来自:http://www.imooc.com/video/7871 推荐大家去学习这个视频,讲解的很不错. 慕课网提供了一个json网址可以用来学习:http://www.imooc.com/api ...

  9. php数据访问(批量删除)

    批量删除: 首先给每一行加上复选框,也就是在自增长列内加入checkbox.因为这里可以多选,也可以单选,所以在传值的时候需要传一个数组来进行处理,所以复选框name的值设定一个数组.传值都是传的va ...

  10. .NET后台如何获取前台HMTL控件的值

    很多时候我们需要HTML控件,感觉比服务器控件更加简介,清爽,那么如何获取HMTL控件的值呢,请看下面例子: 前台页面代码: <input id="Text1" type=& ...