fork download
  1. <?php
  2. declare(strict_types=1);
  3.  
  4. function tekaTekiTeko(int $batas): void
  5. {
  6. // Validasi: harus integer ≥ 20
  7. if ($batas < 20) {
  8. throw new InvalidArgumentException(
  9. "Parameter \$batas harus unsigned integer minimal 20. Ditemukan: {$batas}"
  10. );
  11. }
  12.  
  13. // Loop dari 1 sampai batas
  14. for ($i = 1; $i <= $batas; $i++) {
  15. $output = '';
  16.  
  17. // Cek kelipatan
  18. if ($i % 2 === 0) {
  19. $output .= 'Teka';
  20. }
  21. if ($i % 3 === 0) {
  22. $output .= 'Teki';
  23. }
  24. if ($i % 5 === 0) {
  25. $output .= 'Teko';
  26. }
  27.  
  28. // Jika bukan kelipatan 2,3,5, cetak angka
  29. echo ($output !== '' ? $output : $i) . PHP_EOL;
  30. }
  31. }
  32.  
  33. // Contoh pemanggilan:
  34. try {
  35. tekaTekiTeko(30);
  36. } catch (InvalidArgumentException $e) {
  37. echo 'Error: ' . $e->getMessage();
  38. }
  39.  
Success #stdin #stdout 0.04s 26124KB
stdin
Standard input is empty
stdout
1
Teka
Teki
Teka
Teko
TekaTeki
7
Teka
Teki
TekaTeko
11
TekaTeki
13
Teka
TekiTeko
Teka
17
TekaTeki
19
TekaTeko
Teki
Teka
23
TekaTeki
Teko
Teka
Teki
Teka
29
TekaTekiTeko