[LeetCode][数论]Ugly Number
2016-03-24 16:17
399 查看
题目描述:
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.
思路:
前提:如果一个数的因子只包含2,3,5,那么这个数可以被认为是丑数
过程:在数论中,这是一类问题,判断数的因子,都需要整除,但有一些策略:例如判断一个数是不是素数,维护素数因子,只需判断一个数的平方根是不是能被素数整除即可,无需判断全部。而这道题目中的因子是2,3,5,因为要判断是否只包含这三个因子,所以要一直除到结果为0,如果不为0,说明其除了2, 3, 5之外还包含其他因子
代码实现:
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.
思路:
前提:如果一个数的因子只包含2,3,5,那么这个数可以被认为是丑数
过程:在数论中,这是一类问题,判断数的因子,都需要整除,但有一些策略:例如判断一个数是不是素数,维护素数因子,只需判断一个数的平方根是不是能被素数整除即可,无需判断全部。而这道题目中的因子是2,3,5,因为要判断是否只包含这三个因子,所以要一直除到结果为0,如果不为0,说明其除了2, 3, 5之外还包含其他因子
代码实现:
public class Solution { public boolean 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; if(num == 1){ return true; }else{ return false; } } }
相关文章推荐
- CxImage的编译及简单使用举例
- 高效的找出两个List中的不同元素
- IOS 开发 证书显示 此证书签发者无效
- 三大运营商去年一共赚了1391亿元 中移动无线上网收入达到2009亿元
- SqlServer2008安装时提示重启计算机失败 解决办法
- php时间日期处理
- Java编程之数组转换列表的陷阱
- 线性函数
- 垃圾收集算法
- F - Count the Colors
- ubuntu下使用OBS开斗鱼直播
- cssHack
- 学习、阅读笔记——jsonP&Ajax
- java中的强、软、弱和虚引用
- String与InputStream的互相转换
- SecureCRT远程登录ubuntu
- Python datetime的简单使用
- 204. Count Primes
- 高性能网关设备及服务实践
- PHP操作SQLITE