我們把只包含因子2、3和5的數稱作醜數,所謂一個數m是另一個數n的因子,是指n能被m整除。也就是。根據醜數的定義,醜數只能被2,3和5整除。也就是說,如果一個數能被2 整除,就連續除以2;如果能被3整除,就連續除以3;如果能被5整除,就連續除於5。如果最後得到的是1,那麼這個數就是醜數;否則不是。
因此可以使用下面的函數來判斷一個數是不是醜數:
bool IsUgly(int number)
{
while(number%2==0)
number/=2;
while(number%3==0)
number/=3;
while(number%3==0)
number/=3;
return (number==1)? true:false;
}