<?php
function tekaTekiTeko( $batas ) {
if ( ! is_int ( $batas ) || $batas < 20 ) { throw new InvalidArgumentException( "Parameter harus bilangan bulat >= 20" ) ;
}
for ( $i = 1 ; $i <= $batas ; $i ++ ) {
$output = '' ;
// Perhatikan: urutan divisibilitas adalah 3 → 5 → 2
if ( $i % 3 === 0 ) $output .= 'Teka' ;
if ( $i % 5 === 0 ) $output .= 'Teki' ;
if ( $i % 2 === 0 ) $output .= 'Teko' ;
echo $output === '' ? $i : $output ;
echo PHP_EOL;
}
}
// Contoh pemanggilan
try {
tekaTekiTeko( 30 ) ;
} catch ( Exception $e ) {
echo "Error: " . $e -> getMessage ( ) ;
}
PD9waHAKCmZ1bmN0aW9uIHRla2FUZWtpVGVrbygkYmF0YXMpIHsKICAgIGlmICghaXNfaW50KCRiYXRhcykgfHwgJGJhdGFzIDwgMjApIHsKICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJQYXJhbWV0ZXIgaGFydXMgYmlsYW5nYW4gYnVsYXQgPj0gMjAiKTsKICAgIH0KCiAgICBmb3IgKCRpID0gMTsgJGkgPD0gJGJhdGFzOyAkaSsrKSB7CiAgICAgICAgJG91dHB1dCA9ICcnOwoKICAgICAgICAvLyBQZXJoYXRpa2FuOiB1cnV0YW4gZGl2aXNpYmlsaXRhcyBhZGFsYWggMyDihpIgNSDihpIgMgogICAgICAgIGlmICgkaSAlIDMgPT09IDApICRvdXRwdXQgLj0gJ1Rla2EnOwogICAgICAgIGlmICgkaSAlIDUgPT09IDApICRvdXRwdXQgLj0gJ1Rla2knOwogICAgICAgIGlmICgkaSAlIDIgPT09IDApICRvdXRwdXQgLj0gJ1Rla28nOwoKICAgICAgICBlY2hvICRvdXRwdXQgPT09ICcnID8gJGkgOiAkb3V0cHV0OwogICAgICAgIGVjaG8gUEhQX0VPTDsKICAgIH0KfQoKLy8gQ29udG9oIHBlbWFuZ2dpbGFuCnRyeSB7CiAgICB0ZWthVGVraVRla28oMzApOwp9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKICAgIGVjaG8gIkVycm9yOiAiIC4gJGUtPmdldE1lc3NhZ2UoKTsKfQo=