直觀判斷每個整數是不是醜數的方法

我們把只包含因子2、3和5的數稱作醜數,所謂一個數m是另一個數n的因子,是指n能被m整除。也就是n%m==0n\%m==0。根據醜數的定義,醜數只能被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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章