def tekaTekiTeko( batas: int ) :
if not isinstance ( batas, int ) or batas < 20 :
raise ValueError ( "Parameter batas harus berupa bilangan bulat positif (unsigned integer) dan minimal 20" )
for i in range ( 1 , batas + 1 ) :
if i % 2 == 0 and i % 3 == 0 and i % 5 == 0 :
print ( "TekaTekiTeko" )
elif i % 2 == 0 and i % 3 == 0 :
print ( "TekaTeki" )
elif i % 2 == 0 and i % 5 == 0 :
print ( "TekaTeko" )
elif i % 3 == 0 and i % 5 == 0 :
print ( "TekiTeko" )
elif i % 2 == 0 :
print ( "Teka" )
elif i % 3 == 0 :
print ( "Teki" )
elif i % 5 == 0 :
print ( "Teko" )
else :
print ( i)
print ( "\n ===== Test parameter valid =====\n " )
try :
tekaTekiTeko( 30 )
except ValueError as e:
print ( f"Error: {e}" )
print ( "\n ===== Test parameter tidak valid =====\n " )
try :
tekaTekiTeko( 19 )
except ValueError as e:
print ( f"Error: {e}" )
ZGVmIHRla2FUZWtpVGVrbyhiYXRhczogaW50KToKICAgIGlmIG5vdCBpc2luc3RhbmNlKGJhdGFzLCBpbnQpIG9yIGJhdGFzIDwgMjA6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUGFyYW1ldGVyIGJhdGFzIGhhcnVzIGJlcnVwYSBiaWxhbmdhbiBidWxhdCBwb3NpdGlmICh1bnNpZ25lZCBpbnRlZ2VyKSBkYW4gbWluaW1hbCAyMCIpCiAgICAKICAgIGZvciBpIGluIHJhbmdlKDEsIGJhdGFzICsgMSk6CiAgICAgICAgaWYgaSAlIDIgPT0gMCBhbmQgaSAlIDMgPT0gMCBhbmQgaSAlIDUgPT0gMDoKICAgICAgICAgICAgcHJpbnQoIlRla2FUZWtpVGVrbyIpCiAgICAgICAgZWxpZiBpICUgMiA9PSAwIGFuZCBpICUgMyA9PSAwOgogICAgICAgICAgICBwcmludCgiVGVrYVRla2kiKQogICAgICAgIGVsaWYgaSAlIDIgPT0gMCBhbmQgaSAlIDUgPT0gMDoKICAgICAgICAgICAgcHJpbnQoIlRla2FUZWtvIikKICAgICAgICBlbGlmIGkgJSAzID09IDAgYW5kIGkgJSA1ID09IDA6CiAgICAgICAgICAgIHByaW50KCJUZWtpVGVrbyIpCiAgICAgICAgZWxpZiBpICUgMiA9PSAwOgogICAgICAgICAgICBwcmludCgiVGVrYSIpCiAgICAgICAgZWxpZiBpICUgMyA9PSAwOgogICAgICAgICAgICBwcmludCgiVGVraSIpCiAgICAgICAgZWxpZiBpICUgNSA9PSAwOgogICAgICAgICAgICBwcmludCgiVGVrbyIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcHJpbnQoaSkKCnByaW50KCJcbj09PT09IFRlc3QgcGFyYW1ldGVyIHZhbGlkID09PT09XG4iKQoKdHJ5OgogICAgdGVrYVRla2lUZWtvKDMwKQpleGNlcHQgVmFsdWVFcnJvciBhcyBlOgogICAgcHJpbnQoZiJFcnJvcjoge2V9IikKCnByaW50KCJcbj09PT09IFRlc3QgcGFyYW1ldGVyIHRpZGFrIHZhbGlkID09PT09XG4iKQoKdHJ5OgogICAgdGVrYVRla2lUZWtvKDE5KQpleGNlcHQgVmFsdWVFcnJvciBhcyBlOgogICAgcHJpbnQoZiJFcnJvcjoge2V9Iik=