DeSh adlı üyeden alıntı: mesajı görüntüle
Omerfd haklı. Kendisi en büyük böleni olur.
Ayrıca sizin kodunuz Asal sayılar için sonuç veremez. (Kendisi ve 1'e bölünmesi koşulunu kontrol edemezsiniz) Kendisi hariç en büyük bölenini bulacaksanız şunu deneyebilirsiniz:

<?php
    $sayi=131;
    for($i = intval(floor($sayi/2)); $i>=1; $i--)
    {
        
        if ($sayi % $i == 0)
        {
            if($i==1){
                echo $sayi .' bir asal sayıdır.<br />';
            }else{
                echo 'En büyük tam bölen: '.$i.'<br />';
                break;
            }
        }else{
            //İsteğe bağlı debug
            //echo '$sayi: '.$sayi .' - $i: '. $i. ' - $sayi % $i ='.$sayi % $i. '<br />';
        }
    }
Sizin kodunuzda denediğimde de max() çalışıyor.

<?php
    $sayi=120;
    for($i=2;$i<=$sayi/2;$i++)
        if ($sayi%$i==0)
            $bolenler[]=$i;
        
    echo 'En büyük bölen: '. max($bolenler);
teşekkür ederim