Problem
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.
1 | Example 1: |
Note:
- 1 is typically treated as an ugly number.
- Input is within the 32-bit signed integer range: [−2^31, 2^31 − 1].
编写一个程序,用于判断一个数是否是丑数.丑数定义:因子只包括2,3,5的正数.
Solution
Analysis
给定输入为int型数据,带符号;判断一个数是否是丑数. 可以使用循环或者递归方法.
Code
循环方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18class Solution {
public:
bool isUgly(int num) {
if (num <= 0) return false;// 负数特殊处理
while (num != 1){
if (num % 2 == 0)
num /= 2;
else if (num % 3 == 0)
num /= 3;
else if (num % 5 == 0)
num /= 5;
else
return false;
}
return true;
}
};
递归方法
1 | class Solution { |