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.

So we need to find a number has any factors other than 2, 3 and 5. The logical thinking would be to get all the factors of the number and see if list contains anything other than 2, 3 and 5.

However, the other way to tackle this problem is to devide the number by these factors. If the number has any other factor, the module for that would be > 1. If the module is 1, then we can assume that, the number does not have any other factor than 2, 3 or 5.

Simple method could be written in java as:

public boolean isUgly(int num) {

if(num<=0) return false;

while(num%2==0) num = num/2;

while(num%3==0) num = num/3;

while(num%5==0) num = num/5;

return num==1;

}

### Like this:

Like Loading...

*Related*

Good One.

Here is something that interests you. (its complete fun in any language you want)

http://www.rosettacode.org/wiki/Rosetta_Code

puzzle: http://www.rosettacode.org/wiki/99_Bottles_of_Beer