module Exercise01 where import Test.QuickCheck {-H1.1a)-} myPair :: Integer -> Integer -> Integer myPair x y = (2 ^ y) * (2 * x + 1) - 1 {-H1.1b)-} mySnd :: Integer -> Integer mySnd x | even x = 0 | otherwise = 1 + mySnd (div x 2) {-H1.1c)-} myFst :: Integer -> Integer myFst x | even x = div x 2 | otherwise = myFst (div x 2) {-H1.1d)-} prop_myPair :: Integer -> Integer -> Integer -> Property prop_myPair p x y = y >= 0 && x >= 0 && p >= 0 ==> p == myPair x y {-H2-} digitToEo :: Integer -> String digitToEo 0 = "nul" digitToEo 1 = "unu" digitToEo 2 = "du" digitToEo 3 = "tri" digitToEo 4 = "kvar" digitToEo 5 = "kvin" digitToEo 6 = "ses" digitToEo 7 = "sep" digitToEo 8 = "ok" digitToEo 9 = "nau" {-WETT-} numberToEo :: Integer -> String numberToEo 0 = "nul" numberToEo x = (/= '1') `filter` rek (countDigits x - countDigits x `mod` 3) x countDigits :: Integer -> Int countDigits x = if x <= 9 then 1 else 1 + countDigits (div x 10) rek :: Int -> Integer -> String rek x y | x < 0 = "" | current == 0 = z | x == 3 && current == 1 = "mil" ++ whitespace | otherwise = take 21 (if current < 500 then drop (current * 21) "nul111111111111111111unu111111111111111111du1111111111111111111tri111111111111111111kvar11111111111111111kvin11111111111111111ses111111111111111111sep111111111111111111ok1111111111111111111nau111111111111111111dek111111111111111111dek unu11111111111111dek du111111111111111dek tri11111111111111dek kvar1111111111111dek kvin1111111111111dek ses11111111111111dek sep11111111111111dek ok111111111111111dek nau11111111111111dudek1111111111111111dudek unu111111111111dudek du1111111111111dudek tri111111111111dudek kvar11111111111dudek kvin11111111111dudek ses111111111111dudek sep111111111111dudek ok1111111111111dudek nau111111111111tridek111111111111111tridek unu11111111111tridek du111111111111tridek tri11111111111tridek kvar1111111111tridek kvin1111111111tridek ses11111111111tridek sep11111111111tridek ok111111111111tridek nau11111111111kvardek11111111111111kvardek unu1111111111kvardek du11111111111kvardek tri1111111111kvardek kvar111111111kvardek kvin111111111kvardek ses1111111111kvardek sep1111111111kvardek ok11111111111kvardek nau1111111111kvindek11111111111111kvindek unu1111111111kvindek du11111111111kvindek tri1111111111kvindek kvar111111111kvindek kvin111111111kvindek ses1111111111kvindek sep1111111111kvindek ok11111111111kvindek nau1111111111sesdek111111111111111sesdek unu11111111111sesdek du111111111111sesdek tri11111111111sesdek kvar1111111111sesdek kvin1111111111sesdek ses11111111111sesdek sep11111111111sesdek ok111111111111sesdek nau11111111111sepdek111111111111111sepdek unu11111111111sepdek du111111111111sepdek tri11111111111sepdek kvar1111111111sepdek kvin1111111111sepdek ses11111111111sepdek sep11111111111sepdek ok111111111111sepdek nau11111111111okdek1111111111111111okdek unu111111111111okdek du1111111111111okdek tri111111111111okdek kvar11111111111okdek kvin11111111111okdek ses111111111111okdek sep111111111111okdek ok1111111111111okdek nau111111111111naudek111111111111111naudek unu11111111111naudek du111111111111naudek tri11111111111naudek kvar1111111111naudek kvin1111111111naudek ses11111111111naudek sep11111111111naudek ok111111111111naudek nau11111111111cent11111111111111111cent unu1111111111111cent du11111111111111cent tri1111111111111cent kvar111111111111cent kvin111111111111cent ses1111111111111cent sep1111111111111cent ok11111111111111cent nau1111111111111cent dek1111111111111cent dek unu111111111cent dek du1111111111cent dek tri111111111cent dek kvar11111111cent dek kvin11111111cent dek ses111111111cent dek sep111111111cent dek ok1111111111cent dek nau111111111cent dudek11111111111cent dudek unu1111111cent dudek du11111111cent dudek tri1111111cent dudek kvar111111cent dudek kvin111111cent dudek ses1111111cent dudek sep1111111cent dudek ok11111111cent dudek nau1111111cent tridek1111111111cent tridek unu111111cent tridek du1111111cent tridek tri111111cent tridek kvar11111cent tridek kvin11111cent tridek ses111111cent tridek sep111111cent tridek ok1111111cent tridek nau111111cent kvardek111111111cent kvardek unu11111cent kvardek du111111cent kvardek tri11111cent kvardek kvar1111cent kvardek kvin1111cent kvardek ses11111cent kvardek sep11111cent kvardek ok111111cent kvardek nau11111cent kvindek111111111cent kvindek unu11111cent kvindek du111111cent kvindek tri11111cent kvindek kvar1111cent kvindek kvin1111cent kvindek ses11111cent kvindek sep11111cent kvindek ok111111cent kvindek nau11111cent sesdek1111111111cent sesdek unu111111cent sesdek du1111111cent sesdek tri111111cent sesdek kvar11111cent sesdek kvin11111cent sesdek ses111111cent sesdek sep111111cent sesdek ok1111111cent sesdek nau111111cent sepdek1111111111cent sepdek unu111111cent sepdek du1111111cent sepdek tri111111cent sepdek kvar11111cent sepdek kvin11111cent sepdek ses111111cent sepdek sep111111cent sepdek ok1111111cent sepdek nau111111cent okdek11111111111cent okdek unu1111111cent okdek du11111111cent okdek tri1111111cent okdek kvar111111cent okdek kvin111111cent okdek ses1111111cent okdek sep1111111cent okdek ok11111111cent okdek nau1111111cent naudek1111111111cent naudek unu111111cent naudek du1111111cent naudek tri111111cent naudek kvar11111cent naudek kvin11111cent naudek ses111111cent naudek sep111111cent naudek ok1111111cent naudek nau111111ducent111111111111111ducent unu11111111111ducent du111111111111ducent tri11111111111ducent kvar1111111111ducent kvin1111111111ducent ses11111111111ducent sep11111111111ducent ok111111111111ducent nau11111111111ducent dek11111111111ducent dek unu1111111ducent dek du11111111ducent dek tri1111111ducent dek kvar111111ducent dek kvin111111ducent dek ses1111111ducent dek sep1111111ducent dek ok11111111ducent dek nau1111111ducent dudek111111111ducent dudek unu11111ducent dudek du111111ducent dudek tri11111ducent dudek kvar1111ducent dudek kvin1111ducent dudek ses11111ducent dudek sep11111ducent dudek ok111111ducent dudek nau11111ducent tridek11111111ducent tridek unu1111ducent tridek du11111ducent tridek tri1111ducent tridek kvar111ducent tridek kvin111ducent tridek ses1111ducent tridek sep1111ducent tridek ok11111ducent tridek nau1111ducent kvardek1111111ducent kvardek unu111ducent kvardek du1111ducent kvardek tri111ducent kvardek kvar11ducent kvardek kvin11ducent kvardek ses111ducent kvardek sep111ducent kvardek ok1111ducent kvardek nau111ducent kvindek1111111ducent kvindek unu111ducent kvindek du1111ducent kvindek tri111ducent kvindek kvar11ducent kvindek kvin11ducent kvindek ses111ducent kvindek sep111ducent kvindek ok1111ducent kvindek nau111ducent sesdek11111111ducent sesdek unu1111ducent sesdek du11111ducent sesdek tri1111ducent sesdek kvar111ducent sesdek kvin111ducent sesdek ses1111ducent sesdek sep1111ducent sesdek ok11111ducent sesdek nau1111ducent sepdek11111111ducent sepdek unu1111ducent sepdek du11111ducent sepdek tri1111ducent sepdek kvar111ducent sepdek kvin111ducent sepdek ses1111ducent sepdek sep1111ducent sepdek ok11111ducent sepdek nau1111ducent okdek111111111ducent okdek unu11111ducent okdek du111111ducent okdek tri11111ducent okdek kvar1111ducent okdek kvin1111ducent okdek ses11111ducent okdek sep11111ducent okdek ok111111ducent okdek nau11111ducent naudek11111111ducent naudek unu1111ducent naudek du11111ducent naudek tri1111ducent naudek kvar111ducent naudek kvin111ducent naudek ses1111ducent naudek sep1111ducent naudek ok11111ducent naudek nau1111tricent11111111111111tricent unu1111111111tricent du11111111111tricent tri1111111111tricent kvar111111111tricent kvin111111111tricent ses1111111111tricent sep1111111111tricent ok11111111111tricent nau1111111111tricent dek1111111111tricent dek unu111111tricent dek du1111111tricent dek tri111111tricent dek kvar11111tricent dek kvin11111tricent dek ses111111tricent dek sep111111tricent dek ok1111111tricent dek nau111111tricent dudek11111111tricent dudek unu1111tricent dudek du11111tricent dudek tri1111tricent dudek kvar111tricent dudek kvin111tricent dudek ses1111tricent dudek sep1111tricent dudek ok11111tricent dudek nau1111tricent tridek1111111tricent tridek unu111tricent tridek du1111tricent tridek tri111tricent tridek kvar11tricent tridek kvin11tricent tridek ses111tricent tridek sep111tricent tridek ok1111tricent tridek nau111tricent kvardek111111tricent kvardek unu11tricent kvardek du111tricent kvardek tri11tricent kvardek kvar1tricent kvardek kvin1tricent kvardek ses11tricent kvardek sep11tricent kvardek ok111tricent kvardek nau11tricent kvindek111111tricent kvindek unu11tricent kvindek du111tricent kvindek tri11tricent kvindek kvar1tricent kvindek kvin1tricent kvindek ses11tricent kvindek sep11tricent kvindek ok111tricent kvindek nau11tricent sesdek1111111tricent sesdek unu111tricent sesdek du1111tricent sesdek tri111tricent sesdek kvar11tricent sesdek kvin11tricent sesdek ses111tricent sesdek sep111tricent sesdek ok1111tricent sesdek nau111tricent sepdek1111111tricent sepdek unu111tricent sepdek du1111tricent sepdek tri111tricent sepdek kvar11tricent sepdek kvin11tricent sepdek ses111tricent sepdek sep111tricent sepdek ok1111tricent sepdek nau111tricent okdek11111111tricent okdek unu1111tricent okdek du11111tricent okdek tri1111tricent okdek kvar111tricent okdek kvin111tricent okdek ses1111tricent okdek sep1111tricent okdek ok11111tricent okdek nau1111tricent naudek1111111tricent naudek unu111tricent naudek du1111tricent naudek tri111tricent naudek kvar11tricent naudek kvin11tricent naudek ses111tricent naudek sep111tricent naudek ok1111tricent naudek nau111kvarcent1111111111111kvarcent unu111111111kvarcent du1111111111kvarcent tri111111111kvarcent kvar11111111kvarcent kvin11111111kvarcent ses111111111kvarcent sep111111111kvarcent ok1111111111kvarcent nau111111111kvarcent dek111111111kvarcent dek unu11111kvarcent dek du111111kvarcent dek tri11111kvarcent dek kvar1111kvarcent dek kvin1111kvarcent dek ses11111kvarcent dek sep11111kvarcent dek ok111111kvarcent dek nau11111kvarcent dudek1111111kvarcent dudek unu111kvarcent dudek du1111kvarcent dudek tri111kvarcent dudek kvar11kvarcent dudek kvin11kvarcent dudek ses111kvarcent dudek sep111kvarcent dudek ok1111kvarcent dudek nau111kvarcent tridek111111kvarcent tridek unu11kvarcent tridek du111kvarcent tridek tri11kvarcent tridek kvar1kvarcent tridek kvin1kvarcent tridek ses11kvarcent tridek sep11kvarcent tridek ok111kvarcent tridek nau11kvarcent kvardek11111kvarcent kvardek unu1kvarcent kvardek du11kvarcent kvardek tri1kvarcent kvardek kvarkvarcent kvardek kvinkvarcent kvardek ses1kvarcent kvardek sep1kvarcent kvardek ok11kvarcent kvardek nau1kvarcent kvindek11111kvarcent kvindek unu1kvarcent kvindek du11kvarcent kvindek tri1kvarcent kvindek kvarkvarcent kvindek kvinkvarcent kvindek ses1kvarcent kvindek sep1kvarcent kvindek ok11kvarcent kvindek nau1kvarcent sesdek111111kvarcent sesdek unu11kvarcent sesdek du111kvarcent sesdek tri11kvarcent sesdek kvar1kvarcent sesdek kvin1kvarcent sesdek ses11kvarcent sesdek sep11kvarcent sesdek ok111kvarcent sesdek nau11kvarcent sepdek111111kvarcent sepdek unu11kvarcent sepdek du111kvarcent sepdek tri11kvarcent sepdek kvar1kvarcent sepdek kvin1kvarcent sepdek ses11kvarcent sepdek sep11kvarcent sepdek ok111kvarcent sepdek nau11kvarcent okdek1111111kvarcent okdek unu111kvarcent okdek du1111kvarcent okdek tri111kvarcent okdek kvar11kvarcent okdek kvin11kvarcent okdek ses111kvarcent okdek sep111kvarcent okdek ok1111kvarcent okdek nau111kvarcent naudek111111kvarcent naudek unu11kvarcent naudek du111kvarcent naudek tri11kvarcent naudek kvar1kvarcent naudek kvin1kvarcent naudek ses11kvarcent naudek sep11kvarcent naudek ok111kvarcent naudek nau11" else drop (current * 21 -10500) "kvincent1111111111111kvincent unu111111111kvincent du1111111111kvincent tri111111111kvincent kvar11111111kvincent kvin11111111kvincent ses111111111kvincent sep111111111kvincent ok1111111111kvincent nau111111111kvincent dek111111111kvincent dek unu11111kvincent dek du111111kvincent dek tri11111kvincent dek kvar1111kvincent dek kvin1111kvincent dek ses11111kvincent dek sep11111kvincent dek ok111111kvincent dek nau11111kvincent dudek1111111kvincent dudek unu111kvincent dudek du1111kvincent dudek tri111kvincent dudek kvar11kvincent dudek kvin11kvincent dudek ses111kvincent dudek sep111kvincent dudek ok1111kvincent dudek nau111kvincent tridek111111kvincent tridek unu11kvincent tridek du111kvincent tridek tri11kvincent tridek kvar1kvincent tridek kvin1kvincent tridek ses11kvincent tridek sep11kvincent tridek ok111kvincent tridek nau11kvincent kvardek11111kvincent kvardek unu1kvincent kvardek du11kvincent kvardek tri1kvincent kvardek kvarkvincent kvardek kvinkvincent kvardek ses1kvincent kvardek sep1kvincent kvardek ok11kvincent kvardek nau1kvincent kvindek11111kvincent kvindek unu1kvincent kvindek du11kvincent kvindek tri1kvincent kvindek kvarkvincent kvindek kvinkvincent kvindek ses1kvincent kvindek sep1kvincent kvindek ok11kvincent kvindek nau1kvincent sesdek111111kvincent sesdek unu11kvincent sesdek du111kvincent sesdek tri11kvincent sesdek kvar1kvincent sesdek kvin1kvincent sesdek ses11kvincent sesdek sep11kvincent sesdek ok111kvincent sesdek nau11kvincent sepdek111111kvincent sepdek unu11kvincent sepdek du111kvincent sepdek tri11kvincent sepdek kvar1kvincent sepdek kvin1kvincent sepdek ses11kvincent sepdek sep11kvincent sepdek ok111kvincent sepdek nau11kvincent okdek1111111kvincent okdek unu111kvincent okdek du1111kvincent okdek tri111kvincent okdek kvar11kvincent okdek kvin11kvincent okdek ses111kvincent okdek sep111kvincent okdek ok1111kvincent okdek nau111kvincent naudek111111kvincent naudek unu11kvincent naudek du111kvincent naudek tri11kvincent naudek kvar1kvincent naudek kvin1kvincent naudek ses11kvincent naudek sep11kvincent naudek ok111kvincent naudek nau11sescent11111111111111sescent unu1111111111sescent du11111111111sescent tri1111111111sescent kvar111111111sescent kvin111111111sescent ses1111111111sescent sep1111111111sescent ok11111111111sescent nau1111111111sescent dek1111111111sescent dek unu111111sescent dek du1111111sescent dek tri111111sescent dek kvar11111sescent dek kvin11111sescent dek ses111111sescent dek sep111111sescent dek ok1111111sescent dek nau111111sescent dudek11111111sescent dudek unu1111sescent dudek du11111sescent dudek tri1111sescent dudek kvar111sescent dudek kvin111sescent dudek ses1111sescent dudek sep1111sescent dudek ok11111sescent dudek nau1111sescent tridek1111111sescent tridek unu111sescent tridek du1111sescent tridek tri111sescent tridek kvar11sescent tridek kvin11sescent tridek ses111sescent tridek sep111sescent tridek ok1111sescent tridek nau111sescent kvardek111111sescent kvardek unu11sescent kvardek du111sescent kvardek tri11sescent kvardek kvar1sescent kvardek kvin1sescent kvardek ses11sescent kvardek sep11sescent kvardek ok111sescent kvardek nau11sescent kvindek111111sescent kvindek unu11sescent kvindek du111sescent kvindek tri11sescent kvindek kvar1sescent kvindek kvin1sescent kvindek ses11sescent kvindek sep11sescent kvindek ok111sescent kvindek nau11sescent sesdek1111111sescent sesdek unu111sescent sesdek du1111sescent sesdek tri111sescent sesdek kvar11sescent sesdek kvin11sescent sesdek ses111sescent sesdek sep111sescent sesdek ok1111sescent sesdek nau111sescent sepdek1111111sescent sepdek unu111sescent sepdek du1111sescent sepdek tri111sescent sepdek kvar11sescent sepdek kvin11sescent sepdek ses111sescent sepdek sep111sescent sepdek ok1111sescent sepdek nau111sescent okdek11111111sescent okdek unu1111sescent okdek du11111sescent okdek tri1111sescent okdek kvar111sescent okdek kvin111sescent okdek ses1111sescent okdek sep1111sescent okdek ok11111sescent okdek nau1111sescent naudek1111111sescent naudek unu111sescent naudek du1111sescent naudek tri111sescent naudek kvar11sescent naudek kvin11sescent naudek ses111sescent naudek sep111sescent naudek ok1111sescent naudek nau111sepcent11111111111111sepcent unu1111111111sepcent du11111111111sepcent tri1111111111sepcent kvar111111111sepcent kvin111111111sepcent ses1111111111sepcent sep1111111111sepcent ok11111111111sepcent nau1111111111sepcent dek1111111111sepcent dek unu111111sepcent dek du1111111sepcent dek tri111111sepcent dek kvar11111sepcent dek kvin11111sepcent dek ses111111sepcent dek sep111111sepcent dek ok1111111sepcent dek nau111111sepcent dudek11111111sepcent dudek unu1111sepcent dudek du11111sepcent dudek tri1111sepcent dudek kvar111sepcent dudek kvin111sepcent dudek ses1111sepcent dudek sep1111sepcent dudek ok11111sepcent dudek nau1111sepcent tridek1111111sepcent tridek unu111sepcent tridek du1111sepcent tridek tri111sepcent tridek kvar11sepcent tridek kvin11sepcent tridek ses111sepcent tridek sep111sepcent tridek ok1111sepcent tridek nau111sepcent kvardek111111sepcent kvardek unu11sepcent kvardek du111sepcent kvardek tri11sepcent kvardek kvar1sepcent kvardek kvin1sepcent kvardek ses11sepcent kvardek sep11sepcent kvardek ok111sepcent kvardek nau11sepcent kvindek111111sepcent kvindek unu11sepcent kvindek du111sepcent kvindek tri11sepcent kvindek kvar1sepcent kvindek kvin1sepcent kvindek ses11sepcent kvindek sep11sepcent kvindek ok111sepcent kvindek nau11sepcent sesdek1111111sepcent sesdek unu111sepcent sesdek du1111sepcent sesdek tri111sepcent sesdek kvar11sepcent sesdek kvin11sepcent sesdek ses111sepcent sesdek sep111sepcent sesdek ok1111sepcent sesdek nau111sepcent sepdek1111111sepcent sepdek unu111sepcent sepdek du1111sepcent sepdek tri111sepcent sepdek kvar11sepcent sepdek kvin11sepcent sepdek ses111sepcent sepdek sep111sepcent sepdek ok1111sepcent sepdek nau111sepcent okdek11111111sepcent okdek unu1111sepcent okdek du11111sepcent okdek tri1111sepcent okdek kvar111sepcent okdek kvin111sepcent okdek ses1111sepcent okdek sep1111sepcent okdek ok11111sepcent okdek nau1111sepcent naudek1111111sepcent naudek unu111sepcent naudek du1111sepcent naudek tri111sepcent naudek kvar11sepcent naudek kvin11sepcent naudek ses111sepcent naudek sep111sepcent naudek ok1111sepcent naudek nau111okcent111111111111111okcent unu11111111111okcent du111111111111okcent tri11111111111okcent kvar1111111111okcent kvin1111111111okcent ses11111111111okcent sep11111111111okcent ok111111111111okcent nau11111111111okcent dek11111111111okcent dek unu1111111okcent dek du11111111okcent dek tri1111111okcent dek kvar111111okcent dek kvin111111okcent dek ses1111111okcent dek sep1111111okcent dek ok11111111okcent dek nau1111111okcent dudek111111111okcent dudek unu11111okcent dudek du111111okcent dudek tri11111okcent dudek kvar1111okcent dudek kvin1111okcent dudek ses11111okcent dudek sep11111okcent dudek ok111111okcent dudek nau11111okcent tridek11111111okcent tridek unu1111okcent tridek du11111okcent tridek tri1111okcent tridek kvar111okcent tridek kvin111okcent tridek ses1111okcent tridek sep1111okcent tridek ok11111okcent tridek nau1111okcent kvardek1111111okcent kvardek unu111okcent kvardek du1111okcent kvardek tri111okcent kvardek kvar11okcent kvardek kvin11okcent kvardek ses111okcent kvardek sep111okcent kvardek ok1111okcent kvardek nau111okcent kvindek1111111okcent kvindek unu111okcent kvindek du1111okcent kvindek tri111okcent kvindek kvar11okcent kvindek kvin11okcent kvindek ses111okcent kvindek sep111okcent kvindek ok1111okcent kvindek nau111okcent sesdek11111111okcent sesdek unu1111okcent sesdek du11111okcent sesdek tri1111okcent sesdek kvar111okcent sesdek kvin111okcent sesdek ses1111okcent sesdek sep1111okcent sesdek ok11111okcent sesdek nau1111okcent sepdek11111111okcent sepdek unu1111okcent sepdek du11111okcent sepdek tri1111okcent sepdek kvar111okcent sepdek kvin111okcent sepdek ses1111okcent sepdek sep1111okcent sepdek ok11111okcent sepdek nau1111okcent okdek111111111okcent okdek unu11111okcent okdek du111111okcent okdek tri11111okcent okdek kvar1111okcent okdek kvin1111okcent okdek ses11111okcent okdek sep11111okcent okdek ok111111okcent okdek nau11111okcent naudek11111111okcent naudek unu1111okcent naudek du11111okcent naudek tri1111okcent naudek kvar111okcent naudek kvin111okcent naudek ses1111okcent naudek sep1111okcent naudek ok11111okcent naudek nau1111naucent11111111111111naucent unu1111111111naucent du11111111111naucent tri1111111111naucent kvar111111111naucent kvin111111111naucent ses1111111111naucent sep1111111111naucent ok11111111111naucent nau1111111111naucent dek1111111111naucent dek unu111111naucent dek du1111111naucent dek tri111111naucent dek kvar11111naucent dek kvin11111naucent dek ses111111naucent dek sep111111naucent dek ok1111111naucent dek nau111111naucent dudek11111111naucent dudek unu1111naucent dudek du11111naucent dudek tri1111naucent dudek kvar111naucent dudek kvin111naucent dudek ses1111naucent dudek sep1111naucent dudek ok11111naucent dudek nau1111naucent tridek1111111naucent tridek unu111naucent tridek du1111naucent tridek tri111naucent tridek kvar11naucent tridek kvin11naucent tridek ses111naucent tridek sep111naucent tridek ok1111naucent tridek nau111naucent kvardek111111naucent kvardek unu11naucent kvardek du111naucent kvardek tri11naucent kvardek kvar1naucent kvardek kvin1naucent kvardek ses11naucent kvardek sep11naucent kvardek ok111naucent kvardek nau11naucent kvindek111111naucent kvindek unu11naucent kvindek du111naucent kvindek tri11naucent kvindek kvar1naucent kvindek kvin1naucent kvindek ses11naucent kvindek sep11naucent kvindek ok111naucent kvindek nau11naucent sesdek1111111naucent sesdek unu111naucent sesdek du1111naucent sesdek tri111naucent sesdek kvar11naucent sesdek kvin11naucent sesdek ses111naucent sesdek sep111naucent sesdek ok1111naucent sesdek nau111naucent sepdek1111111naucent sepdek unu111naucent sepdek du1111naucent sepdek tri111naucent sepdek kvar11naucent sepdek kvin11naucent sepdek ses111naucent sepdek sep111naucent sepdek ok1111naucent sepdek nau111naucent okdek11111111naucent okdek unu1111naucent okdek du11111naucent okdek tri1111naucent okdek kvar111naucent okdek kvin111naucent okdek ses1111naucent okdek sep1111naucent okdek ok11111naucent okdek nau1111naucent naudek1111111naucent naudek unu111naucent naudek du1111naucent naudek tri111naucent naudek kvar11naucent naudek kvin11naucent naudek ses111naucent naudek sep111naucent naudek ok1111naucent naudek nau111") ++ 12 `take` drop (x * 4) "111111111111 mil11111111 miliono1111 miliardo111 duiliono111 duiliardo11 triiliono11 triiliardo1 kvariliono1 kvariliardo kviniliono1 kviniliardo sesiliono11 sesiliardo1 sepiliono11 sepiliardo1 okiliono111 okiliardo11 nauiliono11 nauiliardo1 dekiliono11 dekiliardo1" ++ if current == 1 || x <= 3 then whitespace else "j" ++ whitespace where current = fromInteger (y `div` 10 ^ x) next = y `mod` 10 ^ x whitespace = if next == 0 then "" else " " ++ z z = rek (x - 3) next {-MCCOMMENT Bei Verwendung von rek2 anstatt von rek in numberToEo werden weniger Tokens benötigt, dafür ist die Performance durchschnittlich um den Faktor 2 schlechter rek2 :: Int -> Integer -> String rek2 x y | x < 0 = "" | current2 == 0 = z | x == 3 && current2 == 1 = "mil" ++ whitespace | otherwise = 21 `take` drop (current2 * 21) "nul111111111111111111unu111111111111111111du1111111111111111111tri111111111111111111kvar11111111111111111kvin11111111111111111ses111111111111111111sep111111111111111111ok1111111111111111111nau111111111111111111dek111111111111111111dek unu11111111111111dek du111111111111111dek tri11111111111111dek kvar1111111111111dek kvin1111111111111dek ses11111111111111dek sep11111111111111dek ok111111111111111dek nau11111111111111dudek1111111111111111dudek unu111111111111dudek du1111111111111dudek tri111111111111dudek kvar11111111111dudek kvin11111111111dudek ses111111111111dudek sep111111111111dudek ok1111111111111dudek nau111111111111tridek111111111111111tridek unu11111111111tridek du111111111111tridek tri11111111111tridek kvar1111111111tridek kvin1111111111tridek ses11111111111tridek sep11111111111tridek ok111111111111tridek nau11111111111kvardek11111111111111kvardek unu1111111111kvardek du11111111111kvardek tri1111111111kvardek kvar111111111kvardek kvin111111111kvardek ses1111111111kvardek sep1111111111kvardek ok11111111111kvardek nau1111111111kvindek11111111111111kvindek unu1111111111kvindek du11111111111kvindek tri1111111111kvindek kvar111111111kvindek kvin111111111kvindek ses1111111111kvindek sep1111111111kvindek ok11111111111kvindek nau1111111111sesdek111111111111111sesdek unu11111111111sesdek du111111111111sesdek tri11111111111sesdek kvar1111111111sesdek kvin1111111111sesdek ses11111111111sesdek sep11111111111sesdek ok111111111111sesdek nau11111111111sepdek111111111111111sepdek unu11111111111sepdek du111111111111sepdek tri11111111111sepdek kvar1111111111sepdek kvin1111111111sepdek ses11111111111sepdek sep11111111111sepdek ok111111111111sepdek nau11111111111okdek1111111111111111okdek unu111111111111okdek du1111111111111okdek tri111111111111okdek kvar11111111111okdek kvin11111111111okdek ses111111111111okdek sep111111111111okdek ok1111111111111okdek nau111111111111naudek111111111111111naudek unu11111111111naudek du111111111111naudek tri11111111111naudek kvar1111111111naudek kvin1111111111naudek ses11111111111naudek sep11111111111naudek ok111111111111naudek nau11111111111cent11111111111111111cent unu1111111111111cent du11111111111111cent tri1111111111111cent kvar111111111111cent kvin111111111111cent ses1111111111111cent sep1111111111111cent ok11111111111111cent nau1111111111111cent dek1111111111111cent dek unu111111111cent dek du1111111111cent dek tri111111111cent dek kvar11111111cent dek kvin11111111cent dek ses111111111cent dek sep111111111cent dek ok1111111111cent dek nau111111111cent dudek11111111111cent dudek unu1111111cent dudek du11111111cent dudek tri1111111cent dudek kvar111111cent dudek kvin111111cent dudek ses1111111cent dudek sep1111111cent dudek ok11111111cent dudek nau1111111cent tridek1111111111cent tridek unu111111cent tridek du1111111cent tridek tri111111cent tridek kvar11111cent tridek kvin11111cent tridek ses111111cent tridek sep111111cent tridek ok1111111cent tridek nau111111cent kvardek111111111cent kvardek unu11111cent kvardek du111111cent kvardek tri11111cent kvardek kvar1111cent kvardek kvin1111cent kvardek ses11111cent kvardek sep11111cent kvardek ok111111cent kvardek nau11111cent kvindek111111111cent kvindek unu11111cent kvindek du111111cent kvindek tri11111cent kvindek kvar1111cent kvindek kvin1111cent kvindek ses11111cent kvindek sep11111cent kvindek ok111111cent kvindek nau11111cent sesdek1111111111cent sesdek unu111111cent sesdek du1111111cent sesdek tri111111cent sesdek kvar11111cent sesdek kvin11111cent sesdek ses111111cent sesdek sep111111cent sesdek ok1111111cent sesdek nau111111cent sepdek1111111111cent sepdek unu111111cent sepdek du1111111cent sepdek tri111111cent sepdek kvar11111cent sepdek kvin11111cent sepdek ses111111cent sepdek sep111111cent sepdek ok1111111cent sepdek nau111111cent okdek11111111111cent okdek unu1111111cent okdek du11111111cent okdek tri1111111cent okdek kvar111111cent okdek kvin111111cent okdek ses1111111cent okdek sep1111111cent okdek ok11111111cent okdek nau1111111cent naudek1111111111cent naudek unu111111cent naudek du1111111cent naudek tri111111cent naudek kvar11111cent naudek kvin11111cent naudek ses111111cent naudek sep111111cent naudek ok1111111cent naudek nau111111ducent111111111111111ducent unu11111111111ducent du111111111111ducent tri11111111111ducent kvar1111111111ducent kvin1111111111ducent ses11111111111ducent sep11111111111ducent ok111111111111ducent nau11111111111ducent dek11111111111ducent dek unu1111111ducent dek du11111111ducent dek tri1111111ducent dek kvar111111ducent dek kvin111111ducent dek ses1111111ducent dek sep1111111ducent dek ok11111111ducent dek nau1111111ducent dudek111111111ducent dudek unu11111ducent dudek du111111ducent dudek tri11111ducent dudek kvar1111ducent dudek kvin1111ducent dudek ses11111ducent dudek sep11111ducent dudek ok111111ducent dudek nau11111ducent tridek11111111ducent tridek unu1111ducent tridek du11111ducent tridek tri1111ducent tridek kvar111ducent tridek kvin111ducent tridek ses1111ducent tridek sep1111ducent tridek ok11111ducent tridek nau1111ducent kvardek1111111ducent kvardek unu111ducent kvardek du1111ducent kvardek tri111ducent kvardek kvar11ducent kvardek kvin11ducent kvardek ses111ducent kvardek sep111ducent kvardek ok1111ducent kvardek nau111ducent kvindek1111111ducent kvindek unu111ducent kvindek du1111ducent kvindek tri111ducent kvindek kvar11ducent kvindek kvin11ducent kvindek ses111ducent kvindek sep111ducent kvindek ok1111ducent kvindek nau111ducent sesdek11111111ducent sesdek unu1111ducent sesdek du11111ducent sesdek tri1111ducent sesdek kvar111ducent sesdek kvin111ducent sesdek ses1111ducent sesdek sep1111ducent sesdek ok11111ducent sesdek nau1111ducent sepdek11111111ducent sepdek unu1111ducent sepdek du11111ducent sepdek tri1111ducent sepdek kvar111ducent sepdek kvin111ducent sepdek ses1111ducent sepdek sep1111ducent sepdek ok11111ducent sepdek nau1111ducent okdek111111111ducent okdek unu11111ducent okdek du111111ducent okdek tri11111ducent okdek kvar1111ducent okdek kvin1111ducent okdek ses11111ducent okdek sep11111ducent okdek ok111111ducent okdek nau11111ducent naudek11111111ducent naudek unu1111ducent naudek du11111ducent naudek tri1111ducent naudek kvar111ducent naudek kvin111ducent naudek ses1111ducent naudek sep1111ducent naudek ok11111ducent naudek nau1111tricent11111111111111tricent unu1111111111tricent du11111111111tricent tri1111111111tricent kvar111111111tricent kvin111111111tricent ses1111111111tricent sep1111111111tricent ok11111111111tricent nau1111111111tricent dek1111111111tricent dek unu111111tricent dek du1111111tricent dek tri111111tricent dek kvar11111tricent dek kvin11111tricent dek ses111111tricent dek sep111111tricent dek ok1111111tricent dek nau111111tricent dudek11111111tricent dudek unu1111tricent dudek du11111tricent dudek tri1111tricent dudek kvar111tricent dudek kvin111tricent dudek ses1111tricent dudek sep1111tricent dudek ok11111tricent dudek nau1111tricent tridek1111111tricent tridek unu111tricent tridek du1111tricent tridek tri111tricent tridek kvar11tricent tridek kvin11tricent tridek ses111tricent tridek sep111tricent tridek ok1111tricent tridek nau111tricent kvardek111111tricent kvardek unu11tricent kvardek du111tricent kvardek tri11tricent kvardek kvar1tricent kvardek kvin1tricent kvardek ses11tricent kvardek sep11tricent kvardek ok111tricent kvardek nau11tricent kvindek111111tricent kvindek unu11tricent kvindek du111tricent kvindek tri11tricent kvindek kvar1tricent kvindek kvin1tricent kvindek ses11tricent kvindek sep11tricent kvindek ok111tricent kvindek nau11tricent sesdek1111111tricent sesdek unu111tricent sesdek du1111tricent sesdek tri111tricent sesdek kvar11tricent sesdek kvin11tricent sesdek ses111tricent sesdek sep111tricent sesdek ok1111tricent sesdek nau111tricent sepdek1111111tricent sepdek unu111tricent sepdek du1111tricent sepdek tri111tricent sepdek kvar11tricent sepdek kvin11tricent sepdek ses111tricent sepdek sep111tricent sepdek ok1111tricent sepdek nau111tricent okdek11111111tricent okdek unu1111tricent okdek du11111tricent okdek tri1111tricent okdek kvar111tricent okdek kvin111tricent okdek ses1111tricent okdek sep1111tricent okdek ok11111tricent okdek nau1111tricent naudek1111111tricent naudek unu111tricent naudek du1111tricent naudek tri111tricent naudek kvar11tricent naudek kvin11tricent naudek ses111tricent naudek sep111tricent naudek ok1111tricent naudek nau111kvarcent1111111111111kvarcent unu111111111kvarcent du1111111111kvarcent tri111111111kvarcent kvar11111111kvarcent kvin11111111kvarcent ses111111111kvarcent sep111111111kvarcent ok1111111111kvarcent nau111111111kvarcent dek111111111kvarcent dek unu11111kvarcent dek du111111kvarcent dek tri11111kvarcent dek kvar1111kvarcent dek kvin1111kvarcent dek ses11111kvarcent dek sep11111kvarcent dek ok111111kvarcent dek nau11111kvarcent dudek1111111kvarcent dudek unu111kvarcent dudek du1111kvarcent dudek tri111kvarcent dudek kvar11kvarcent dudek kvin11kvarcent dudek ses111kvarcent dudek sep111kvarcent dudek ok1111kvarcent dudek nau111kvarcent tridek111111kvarcent tridek unu11kvarcent tridek du111kvarcent tridek tri11kvarcent tridek kvar1kvarcent tridek kvin1kvarcent tridek ses11kvarcent tridek sep11kvarcent tridek ok111kvarcent tridek nau11kvarcent kvardek11111kvarcent kvardek unu1kvarcent kvardek du11kvarcent kvardek tri1kvarcent kvardek kvarkvarcent kvardek kvinkvarcent kvardek ses1kvarcent kvardek sep1kvarcent kvardek ok11kvarcent kvardek nau1kvarcent kvindek11111kvarcent kvindek unu1kvarcent kvindek du11kvarcent kvindek tri1kvarcent kvindek kvarkvarcent kvindek kvinkvarcent kvindek ses1kvarcent kvindek sep1kvarcent kvindek ok11kvarcent kvindek nau1kvarcent sesdek111111kvarcent sesdek unu11kvarcent sesdek du111kvarcent sesdek tri11kvarcent sesdek kvar1kvarcent sesdek kvin1kvarcent sesdek ses11kvarcent sesdek sep11kvarcent sesdek ok111kvarcent sesdek nau11kvarcent sepdek111111kvarcent sepdek unu11kvarcent sepdek du111kvarcent sepdek tri11kvarcent sepdek kvar1kvarcent sepdek kvin1kvarcent sepdek ses11kvarcent sepdek sep11kvarcent sepdek ok111kvarcent sepdek nau11kvarcent okdek1111111kvarcent okdek unu111kvarcent okdek du1111kvarcent okdek tri111kvarcent okdek kvar11kvarcent okdek kvin11kvarcent okdek ses111kvarcent okdek sep111kvarcent okdek ok1111kvarcent okdek nau111kvarcent naudek111111kvarcent naudek unu11kvarcent naudek du111kvarcent naudek tri11kvarcent naudek kvar1kvarcent naudek kvin1kvarcent naudek ses11kvarcent naudek sep11kvarcent naudek ok111kvarcent naudek nau11kvincent1111111111111kvincent unu111111111kvincent du1111111111kvincent tri111111111kvincent kvar11111111kvincent kvin11111111kvincent ses111111111kvincent sep111111111kvincent ok1111111111kvincent nau111111111kvincent dek111111111kvincent dek unu11111kvincent dek du111111kvincent dek tri11111kvincent dek kvar1111kvincent dek kvin1111kvincent dek ses11111kvincent dek sep11111kvincent dek ok111111kvincent dek nau11111kvincent dudek1111111kvincent dudek unu111kvincent dudek du1111kvincent dudek tri111kvincent dudek kvar11kvincent dudek kvin11kvincent dudek ses111kvincent dudek sep111kvincent dudek ok1111kvincent dudek nau111kvincent tridek111111kvincent tridek unu11kvincent tridek du111kvincent tridek tri11kvincent tridek kvar1kvincent tridek kvin1kvincent tridek ses11kvincent tridek sep11kvincent tridek ok111kvincent tridek nau11kvincent kvardek11111kvincent kvardek unu1kvincent kvardek du11kvincent kvardek tri1kvincent kvardek kvarkvincent kvardek kvinkvincent kvardek ses1kvincent kvardek sep1kvincent kvardek ok11kvincent kvardek nau1kvincent kvindek11111kvincent kvindek unu1kvincent kvindek du11kvincent kvindek tri1kvincent kvindek kvarkvincent kvindek kvinkvincent kvindek ses1kvincent kvindek sep1kvincent kvindek ok11kvincent kvindek nau1kvincent sesdek111111kvincent sesdek unu11kvincent sesdek du111kvincent sesdek tri11kvincent sesdek kvar1kvincent sesdek kvin1kvincent sesdek ses11kvincent sesdek sep11kvincent sesdek ok111kvincent sesdek nau11kvincent sepdek111111kvincent sepdek unu11kvincent sepdek du111kvincent sepdek tri11kvincent sepdek kvar1kvincent sepdek kvin1kvincent sepdek ses11kvincent sepdek sep11kvincent sepdek ok111kvincent sepdek nau11kvincent okdek1111111kvincent okdek unu111kvincent okdek du1111kvincent okdek tri111kvincent okdek kvar11kvincent okdek kvin11kvincent okdek ses111kvincent okdek sep111kvincent okdek ok1111kvincent okdek nau111kvincent naudek111111kvincent naudek unu11kvincent naudek du111kvincent naudek tri11kvincent naudek kvar1kvincent naudek kvin1kvincent naudek ses11kvincent naudek sep11kvincent naudek ok111kvincent naudek nau11sescent11111111111111sescent unu1111111111sescent du11111111111sescent tri1111111111sescent kvar111111111sescent kvin111111111sescent ses1111111111sescent sep1111111111sescent ok11111111111sescent nau1111111111sescent dek1111111111sescent dek unu111111sescent dek du1111111sescent dek tri111111sescent dek kvar11111sescent dek kvin11111sescent dek ses111111sescent dek sep111111sescent dek ok1111111sescent dek nau111111sescent dudek11111111sescent dudek unu1111sescent dudek du11111sescent dudek tri1111sescent dudek kvar111sescent dudek kvin111sescent dudek ses1111sescent dudek sep1111sescent dudek ok11111sescent dudek nau1111sescent tridek1111111sescent tridek unu111sescent tridek du1111sescent tridek tri111sescent tridek kvar11sescent tridek kvin11sescent tridek ses111sescent tridek sep111sescent tridek ok1111sescent tridek nau111sescent kvardek111111sescent kvardek unu11sescent kvardek du111sescent kvardek tri11sescent kvardek kvar1sescent kvardek kvin1sescent kvardek ses11sescent kvardek sep11sescent kvardek ok111sescent kvardek nau11sescent kvindek111111sescent kvindek unu11sescent kvindek du111sescent kvindek tri11sescent kvindek kvar1sescent kvindek kvin1sescent kvindek ses11sescent kvindek sep11sescent kvindek ok111sescent kvindek nau11sescent sesdek1111111sescent sesdek unu111sescent sesdek du1111sescent sesdek tri111sescent sesdek kvar11sescent sesdek kvin11sescent sesdek ses111sescent sesdek sep111sescent sesdek ok1111sescent sesdek nau111sescent sepdek1111111sescent sepdek unu111sescent sepdek du1111sescent sepdek tri111sescent sepdek kvar11sescent sepdek kvin11sescent sepdek ses111sescent sepdek sep111sescent sepdek ok1111sescent sepdek nau111sescent okdek11111111sescent okdek unu1111sescent okdek du11111sescent okdek tri1111sescent okdek kvar111sescent okdek kvin111sescent okdek ses1111sescent okdek sep1111sescent okdek ok11111sescent okdek nau1111sescent naudek1111111sescent naudek unu111sescent naudek du1111sescent naudek tri111sescent naudek kvar11sescent naudek kvin11sescent naudek ses111sescent naudek sep111sescent naudek ok1111sescent naudek nau111sepcent11111111111111sepcent unu1111111111sepcent du11111111111sepcent tri1111111111sepcent kvar111111111sepcent kvin111111111sepcent ses1111111111sepcent sep1111111111sepcent ok11111111111sepcent nau1111111111sepcent dek1111111111sepcent dek unu111111sepcent dek du1111111sepcent dek tri111111sepcent dek kvar11111sepcent dek kvin11111sepcent dek ses111111sepcent dek sep111111sepcent dek ok1111111sepcent dek nau111111sepcent dudek11111111sepcent dudek unu1111sepcent dudek du11111sepcent dudek tri1111sepcent dudek kvar111sepcent dudek kvin111sepcent dudek ses1111sepcent dudek sep1111sepcent dudek ok11111sepcent dudek nau1111sepcent tridek1111111sepcent tridek unu111sepcent tridek du1111sepcent tridek tri111sepcent tridek kvar11sepcent tridek kvin11sepcent tridek ses111sepcent tridek sep111sepcent tridek ok1111sepcent tridek nau111sepcent kvardek111111sepcent kvardek unu11sepcent kvardek du111sepcent kvardek tri11sepcent kvardek kvar1sepcent kvardek kvin1sepcent kvardek ses11sepcent kvardek sep11sepcent kvardek ok111sepcent kvardek nau11sepcent kvindek111111sepcent kvindek unu11sepcent kvindek du111sepcent kvindek tri11sepcent kvindek kvar1sepcent kvindek kvin1sepcent kvindek ses11sepcent kvindek sep11sepcent kvindek ok111sepcent kvindek nau11sepcent sesdek1111111sepcent sesdek unu111sepcent sesdek du1111sepcent sesdek tri111sepcent sesdek kvar11sepcent sesdek kvin11sepcent sesdek ses111sepcent sesdek sep111sepcent sesdek ok1111sepcent sesdek nau111sepcent sepdek1111111sepcent sepdek unu111sepcent sepdek du1111sepcent sepdek tri111sepcent sepdek kvar11sepcent sepdek kvin11sepcent sepdek ses111sepcent sepdek sep111sepcent sepdek ok1111sepcent sepdek nau111sepcent okdek11111111sepcent okdek unu1111sepcent okdek du11111sepcent okdek tri1111sepcent okdek kvar111sepcent okdek kvin111sepcent okdek ses1111sepcent okdek sep1111sepcent okdek ok11111sepcent okdek nau1111sepcent naudek1111111sepcent naudek unu111sepcent naudek du1111sepcent naudek tri111sepcent naudek kvar11sepcent naudek kvin11sepcent naudek ses111sepcent naudek sep111sepcent naudek ok1111sepcent naudek nau111okcent111111111111111okcent unu11111111111okcent du111111111111okcent tri11111111111okcent kvar1111111111okcent kvin1111111111okcent ses11111111111okcent sep11111111111okcent ok111111111111okcent nau11111111111okcent dek11111111111okcent dek unu1111111okcent dek du11111111okcent dek tri1111111okcent dek kvar111111okcent dek kvin111111okcent dek ses1111111okcent dek sep1111111okcent dek ok11111111okcent dek nau1111111okcent dudek111111111okcent dudek unu11111okcent dudek du111111okcent dudek tri11111okcent dudek kvar1111okcent dudek kvin1111okcent dudek ses11111okcent dudek sep11111okcent dudek ok111111okcent dudek nau11111okcent tridek11111111okcent tridek unu1111okcent tridek du11111okcent tridek tri1111okcent tridek kvar111okcent tridek kvin111okcent tridek ses1111okcent tridek sep1111okcent tridek ok11111okcent tridek nau1111okcent kvardek1111111okcent kvardek unu111okcent kvardek du1111okcent kvardek tri111okcent kvardek kvar11okcent kvardek kvin11okcent kvardek ses111okcent kvardek sep111okcent kvardek ok1111okcent kvardek nau111okcent kvindek1111111okcent kvindek unu111okcent kvindek du1111okcent kvindek tri111okcent kvindek kvar11okcent kvindek kvin11okcent kvindek ses111okcent kvindek sep111okcent kvindek ok1111okcent kvindek nau111okcent sesdek11111111okcent sesdek unu1111okcent sesdek du11111okcent sesdek tri1111okcent sesdek kvar111okcent sesdek kvin111okcent sesdek ses1111okcent sesdek sep1111okcent sesdek ok11111okcent sesdek nau1111okcent sepdek11111111okcent sepdek unu1111okcent sepdek du11111okcent sepdek tri1111okcent sepdek kvar111okcent sepdek kvin111okcent sepdek ses1111okcent sepdek sep1111okcent sepdek ok11111okcent sepdek nau1111okcent okdek111111111okcent okdek unu11111okcent okdek du111111okcent okdek tri11111okcent okdek kvar1111okcent okdek kvin1111okcent okdek ses11111okcent okdek sep11111okcent okdek ok111111okcent okdek nau11111okcent naudek11111111okcent naudek unu1111okcent naudek du11111okcent naudek tri1111okcent naudek kvar111okcent naudek kvin111okcent naudek ses1111okcent naudek sep1111okcent naudek ok11111okcent naudek nau1111naucent11111111111111naucent unu1111111111naucent du11111111111naucent tri1111111111naucent kvar111111111naucent kvin111111111naucent ses1111111111naucent sep1111111111naucent ok11111111111naucent nau1111111111naucent dek1111111111naucent dek unu111111naucent dek du1111111naucent dek tri111111naucent dek kvar11111naucent dek kvin11111naucent dek ses111111naucent dek sep111111naucent dek ok1111111naucent dek nau111111naucent dudek11111111naucent dudek unu1111naucent dudek du11111naucent dudek tri1111naucent dudek kvar111naucent dudek kvin111naucent dudek ses1111naucent dudek sep1111naucent dudek ok11111naucent dudek nau1111naucent tridek1111111naucent tridek unu111naucent tridek du1111naucent tridek tri111naucent tridek kvar11naucent tridek kvin11naucent tridek ses111naucent tridek sep111naucent tridek ok1111naucent tridek nau111naucent kvardek111111naucent kvardek unu11naucent kvardek du111naucent kvardek tri11naucent kvardek kvar1naucent kvardek kvin1naucent kvardek ses11naucent kvardek sep11naucent kvardek ok111naucent kvardek nau11naucent kvindek111111naucent kvindek unu11naucent kvindek du111naucent kvindek tri11naucent kvindek kvar1naucent kvindek kvin1naucent kvindek ses11naucent kvindek sep11naucent kvindek ok111naucent kvindek nau11naucent sesdek1111111naucent sesdek unu111naucent sesdek du1111naucent sesdek tri111naucent sesdek kvar11naucent sesdek kvin11naucent sesdek ses111naucent sesdek sep111naucent sesdek ok1111naucent sesdek nau111naucent sepdek1111111naucent sepdek unu111naucent sepdek du1111naucent sepdek tri111naucent sepdek kvar11naucent sepdek kvin11naucent sepdek ses111naucent sepdek sep111naucent sepdek ok1111naucent sepdek nau111naucent okdek11111111naucent okdek unu1111naucent okdek du11111naucent okdek tri1111naucent okdek kvar111naucent okdek kvin111naucent okdek ses1111naucent okdek sep1111naucent okdek ok11111naucent okdek nau1111naucent naudek1111111naucent naudek unu111naucent naudek du1111naucent naudek tri111naucent naudek kvar11naucent naudek kvin11naucent naudek ses111naucent naudek sep111naucent naudek ok1111naucent naudek nau111" ++ 12 `take` drop (x * 4) "111111111111 mil11111111 miliono1111 miliardo111 duiliono111 duiliardo11 triiliono11 triiliardo1 kvariliono1 kvariliardo kviniliono1 kviniliardo sesiliono11 sesiliardo1 sepiliono11 sepiliardo1 okiliono111 okiliardo11 nauiliono11 nauiliardo1 dekiliono11 dekiliardo1" ++ if current2 == 1 || x <= 3 then whitespace else "j" ++ whitespace where current2 = fromInteger (y `div` 10 ^ x) next = y `mod` 10 ^ x whitespace = if next == 0 then "" else " " ++ z z = rek2 (x - 3) next -} {-TTEW-}