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)
}
}
cGFja2FnZSBtYWluCgppbXBvcnQgKAoJImVycm9ycyIKCSJmbXQiCikKCmZ1bmMgdGVrYVRla2lUZWtvKGJhdGFzIHVpbnQpIChbXXN0cmluZywgZXJyb3IpIHsKCWlmIGJhdGFzIDwgMjAgewoJCXJldHVybiBuaWwsIGVycm9ycy5OZXcoIkVyb3IhIEJhdGFzIG1pbmltYWwgYWRhbGFoIDIwIikKCX0KCglvdXRwdXQgOj0gbWFrZShbXXN0cmluZywgMCwgYmF0YXMpCgoJZm9yIGkgOj0gdWludCgxKTsgaSA8PSBiYXRhczsgaSsrIHsKCQlyZXN1bHQgOj0gIiIKCgkJaWYgaSUyID09IDAgewoJCQlyZXN1bHQgKz0gIlRla2EiCgkJfQoJCWlmIGklMyA9PSAwIHsKCQkJcmVzdWx0ICs9ICJUZWtpIgoJCX0KCQlpZiBpJTUgPT0gMCB7CgkJCXJlc3VsdCArPSAiVGVrbyIKCQl9CgoJCWlmIHJlc3VsdCA9PSAiIiB7CgkJCXJlc3VsdCA9IGZtdC5TcHJpbnQoaSkKCQl9CgoJCW91dHB1dCA9IGFwcGVuZChvdXRwdXQsIHJlc3VsdCkKCX0KCglyZXR1cm4gb3V0cHV0LCBuaWwKfQoKZnVuYyBtYWluKCkgewoJaGFzaWwsIGVyciA6PSB0ZWthVGVraVRla28oMzApCglpZiBlcnIgIT0gbmlsIHsKCQlmbXQuUHJpbnRsbihlcnIpCgkJcmV0dXJuCgl9CgoJZm9yIF8sIHYgOj0gcmFuZ2UgaGFzaWwgewoJCWZtdC5QcmludGxuKHYpCgl9Cn0K