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