<?php
        
        // Exemplo de fatorial: n! = n*(n-1)*(n-2)*...*1
        // 4! = 4 * (4-1) * (4-2) * (4-3) = 24
        // 4! = 4 * 3 * 2 * 1 = 24

do {    
    echo "Digite um número natural: ";
        
    // Naturais são inteiros não-negativos: 0, 1, 2, 3, ...,1000.
   
    $n = (int) trim(fgets(STDIN));
} while($n < 0);
        
        // Negativos não são aceitos ($n < 0), então o fgets continua até um número válido ser fornecido
        // Quando o $n é 4, sai do do-while e prossegue com o cálculo

$n_fatorial = 1;
        
        // Declaração da variável que vai acumular o fatorial: n! = n*(n-1)*...*(1)
        // $n_fatorial começa em 1, pois qualquer número multiplicado por 1 não altera seu valor

for ($i = 1; $i <= $n; $i++) {
        
        // "$i = 1" inicializa a variável $i com 1
        // $i é o contador, $n é o número fornecido, $i++ incrementa $i após cada iteração

    $n_fatorial *= $i; // Multiplica o valor de $n_fatorial pelo valor atual de $i em cada iteração
    
        // Exemplo de execução para $n = 4:
        // -- 1° loop -- $n_fatorial = 1 * 1 = 1
        // -- 2° loop -- $n_fatorial = 1 * 2 = 2
        // -- 3° loop -- $n_fatorial = 2 * 3 = 6
        // -- 4° loop -- $n_fatorial = 6 * 4 = 24 
        // Como $i = 5, a condição ($i <= $n) é falsa e o loop termina
}
echo "\nO fatorial do número {$n} é: {$n_fatorial}.";
?>

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: