Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Chương trình PHP kiểm tra tổng số ước của số là chẵn hay lẻ

Ví dụ

<?php
function divisor_count($my_val) {
    $my_count = 0;
    for ($i = 1; $i <= sqrt($my_val) + 1; $i++) {
        if ($my_val % $i == 0)
            $my_count += ($my_val / $i == $i) ? 1 : 2;
    }
    if ($my_count % 2 == 0)
        echo "It is an even number\n";
    else
        echo "It is an odd number\n";
}
divisor_count(100);
?>

Kết quả

It is an odd number

Giải thích

Hàm divisor_count đếm số ước của số cho trước. Duyệt i từ 1 đến √n. Nếu i chia hết n, thì i và n/i đều là ước. Nếu i² = n (ước kép) chỉ đếm 1. Cuối kiểm tra tổng ước chẵn/lẻ. Với 100: ước là 1,2,4,5,10,20,25,50,100 -> 9 ước (lẻ). Kết quả đúng.

Lưu ý: Số chính phương luôn có số ước lẻ (vì √n đếm 1 lần). Hàm in trực tiếp thay vì trả về bool, ít linh hoạt.