由题意知,Ugly Number指质因数只包含2,3,5这三个数字的数,故只要有出这三个之外的质因数的数字就不是Ugly Number.
(1)C语言实现
bool isUgly(int num) {
if(num<=0)
return false;
while(num>=2){
if(num%2==0)
num/=2;
else if(num%3==0)
num/=3;
else if(num%5==0)
num/=5;
else
return false;
}
return num == 1;
}
(2)C++实现
class Solution {
public:
bool isUgly(int num) {
if(num<=0)
return false;
if(num == 1)
return true;
if(num == 2 || num == 3 || num == 5)
return true;
else{
while(num>=2){
if(num%2==0)
num = num/2;
else if(num%3==0)
num = num/3;
else if(num%5==0)
num = num/5;
else
return false;
}
}
}
};
(3)java实现
public class Solution {
public boolean isUgly(int num) {
if(num<=0)
return false;
if(num==2||num==3||num==5)
return true;
while(num%2==0){
num /= 2;
}
while(num%3==0){
num /=3;
}
while(num%5==0){
num /=5;
}
return num==1;
}
}