Problem:
Solution:
class Solution {
public:
bool isUgly(int num) {
if (num < 1)
return false;
if (num == 1) {
return true;
} else if (num % 2 == 0) {
return isUgly(num/2);
} else if (num % 3 == 0) {
return isUgly(num/3);
} else if (num % 5 == 0) {
return isUgly(num/5);
}
return false;
}
};
Another Approach:
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.Solution:
class Solution {
public:
bool isUgly(int num) {
if (num < 1)
return false;
if (num == 1) {
return true;
} else if (num % 2 == 0) {
return isUgly(num/2);
} else if (num % 3 == 0) {
return isUgly(num/3);
} else if (num % 5 == 0) {
return isUgly(num/5);
}
return false;
}
};
Another Approach:
int
maxDivide(
int
a,
int
b)
{
while
(a%b == 0)
a = a/b;
return
a;
}
/* Function to check if a number is ugly or not */
int
isUgly(
int
no)
{
no = maxDivide(no, 2);
no = maxDivide(no, 3);
no = maxDivide(no, 5);
return
(no == 1)? 1 : 0;
}
No comments:
Post a Comment