Dokonalé číslo
Dokonalé číslo je takové přirozené číslo, které má stejnou hodnotu, jako součet všech jeho kladných dělitelů (kromě jeho samého). První dokonalá čísla jsou 6, 28, 496, 8128 a všechna jsou ve tvaru . Řecký matematik Euklides dokázal, že tento vzorec vrátí vždy dokonalé číslo, pokud je
prvočíslo.
Dosud byla nalezena pouze sudá dokonalá čísla, ale existence lichých nebyla doposud vyvrácena. Dle současných poznatků musí být liché dokonalé číslo vyšší než .
Příklady dokonalých čísel
Kód
/**
* Zjistuje, jestli je cislo dokonale
* @param number testovane cislo
* @return @true pokud je dokonale, @false pokud neni
*/
public static boolean isPerfect(int number){
//liche dokonale cislo asi neexistuje a pokud ano, tak je vyssi
//nez 10^300, coz je jak mimo rozsah int, tak mimo moznosti
//tohoto algoritmu
if(number % 2 == 1) return false;
int result = 1; //1 je trivialnim delitelem
for(int i = 2; i <= number/2; i++){
if(number % i == 0) result += i;
}
return result == number;
}
/**
* Overi jestli je cislo dokonale
* @param $number cislo k overeni
* @return TRUE / FALSE
* @author Thomas (www.adamjak.net)
*/
function dokonale_cislo($number){
if($number % 2 == 1){
return FALSE;
}
$result = 1;
for($i = 2; $i <= $number/2; $i++){
if($number % $i == 0) {
$result += $i;
}
}
if ($result == $number) {
return TRUE;
}
}


