「綠色」整數可以被偶數除以2。
換句話說,數字的素因子分解有偶數個2。Haskell中的素因子分解
例子:
•80是綠色的,因爲它可以通過2正好四次分,四是偶數。
(80 = 2 * 2 * 2 * 2 * 5,和5是未整除2)
•56不是綠色,因爲它可以由2個恰好三次進行劃分,和三個是奇數
(56 = 2 * 2 * 2 * 7和7是不是能被2整除)
•15是綠色的,因爲它可以通過2次零分,零甚至
我花了很這很多時間和解決方案是令人驚訝的簡潔:
green 0 = error "zero"
green x
| mod x 2 == 0 = not (green (div x 2))
| mod x 2 == 1 = True
我無法確定「not(green(div x 2))」部分的用途。
如果x是綠色,2x不是,反之亦然。 –