您的位置:首页 > 其它

Ugly Number问题及解法

2017-03-30 10:26 127 查看
问题描述:

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其中的几个,那么就不是ugly number,所以,我们只需要把该整数所有的2,3,5素因子除完,看看最后值是否等于1即可。

过程详见代码:

class Solution {
public:
bool isUgly(int num) {
int last = num;
while(num > 0)
{
if(num % 2 == 0) num = num / 2;
if(num % 3 == 0) num = num / 3;
if(num % 5 == 0) num = num / 5;
if(last == num) break;
last = num;
}
return num == 1;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: