Ugly Number
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.
提示 | 解題應用 |
---|---|
Math | 規律觀查 |
Default:
|
|
解答思路:
要判斷一數字是否僅由2、3、5所組成,最快的方式就是不斷的將該數利用回圈去除2、3、5,且各別除以時其餘數必須為0(因為是由2、3、5組成),最後剩下的數如果為1表示其完全由2、3、5所組成為Ugly Number,如果不為1那麼就勢必存在著其它的質數回傳false。
程式碼解說:
首先要將0這個例外給剔除掉回傳false,接著用flag來確定該數能否被2、3、5整除,如果有其一能被整除,就將該數除以其一接著再重新在判斷一次,直到完全不能被2、3、5整除(含其它質數)或該數為1(被完全整除)為止
|
|
該數被完全拿掉2、3、5的組成要素後,最後再判斷剩下的值是否為1(被完全整除),如果是就回傳true,否則回傳false
|
|
完整程式碼:
|
|
總結:
判斷一數字是否由某些特定的質數所組成,最快的方式就是不斷的將該數個別除以特定的質數,且若為組成的要素其餘數必為0,最後剩下的數如果為1表示其完全由該質數組成為Ugly Numer。