Ví dụ
<?php
function divisibility_check($my_val, $my_digit) {
return ($my_digit != 0 && $my_val % $my_digit == 0);
}
function divide_digits($n) {
$temp = $n;
while ($temp > 0) {
$my_digit = $temp % 10;
if (!divisibility_check($n, $my_digit))
return false;
$temp = (int)($temp / 10);
}
return true;
}
$val = 255;
if (divide_digits($val))
echo "All the numbers can be divided";
else
echo "All the numbers can't be divided";
?>
Kết quả
All the numbers can be divided
Giải thích
Hàm divisibility_check kiểm tra chữ số khác 0 VÀ số nguyên chia hết cho chữ số đó. Hàm divide_digits tách từng chữ số (mod 10, div 10) và kiểm tra. Với 255: chữ số 5,5,2. 255%5=0, 255%5=0, 255%2=1 → KHÔNG chia hết cho 2. Kết quả nên là false.
Sửa lỗi logic: Code gốc có bug biến $my_val không định nghĩa trong divide_digits (dùng $n). Kết quả gốc ghi "can be divided" là SAI. 255 không chia hết cho 2. Ví dụ đúng: 128 (1,2,8 đều chia 128? 128%1=0, 128%2=0, 128%8=0 -> true).