package main

import (
	"errors"
	"fmt"
)

func tekaTekiTeko(batas uint) ([]string, error) {
	if batas < 20 {
		return nil, errors.New("Eror! Batas minimal adalah 20")
	}

	output := make([]string, 0, batas)

	for i := uint(1); i <= batas; i++ {
		result := ""

		if i%2 == 0 {
			result += "Teka"
		}
		if i%3 == 0 {
			result += "Teki"
		}
		if i%5 == 0 {
			result += "Teko"
		}

		if result == "" {
			result = fmt.Sprint(i)
		}

		output = append(output, result)
	}

	return output, nil
}

func main() {
	hasil, err := tekaTekiTeko(30)
	if err != nil {
		fmt.Println(err)
		return
	}

	for _, v := range hasil {
		fmt.Println(v)
	}
}
