1
resposta

Questão 7 : verificar se número é primo

A Solução apresentada pelo Instrutor é a seguinte:

# Solicitamos o número
num = int(input("Digite o número: "))

# Assumimos que o número é primo até que se prove o contrário
eh_primo = True

# Números abaixo de 2 não são primos
if num <= 1 :
  eh_primo = False
  ## O 1 n é primo pq n tem dois fatores pra aplicar a lógica
else:
    for i in range(2, num):
        # Se o número for divisível por qualquer número dentro deste intervalo,
        # ele não é primo, portanto, mudamos a variável 'eh_primo' para False e saímos do loop.
        
        if num % i == 0:
            eh_primo = False
            break
  
# Verifica se 'eh_primo' ainda é True, o que significa que o número passou pelo loop
# sem ser divisível por nenhum número além de 1 e ele mesmo.
if eh_primo:
    # Se for o caso, o número é primo.
    print(f'O número {num} é primo')
else:
    # Caso contrário, o número não é primo.
    print(f'O número {num} não é primo')
    

Minha dúvida é porque que na linha if num % i == 0, a lógica é considerada que o número não é primo, se o % indica o resto da divisão ser 0. Por exemplo, Se 3 % 3 dá 0, então, até onde entendi, a lógica se aplica. Não entendi porque que ali deve ser colocado que a condiçao de Primo seja False.

1 resposta

Oii, Eduardo!

Agradeço por compartilhar seu código com a comunidade Alura.

Sobre sua dúvida, faz muito sentido você ter se perguntado isso. Vamos por partes:

Quando usamos o operador %, ele retorna o resto da divisão. Então, num % i == 0 significa que o número num é divisível por i sem deixar resto.

No contexto de verificar se um número é primo, queremos saber se existe algum número além de 1 e dele mesmo que consiga dividi-lo sem deixar resto. Se existir, o número não é primo.

Veja este exemplo:


num = 9

for i in range(2, 9):
    if num % i == 0:
        print(f'{num} é divisível por {i}')

Esse código verifica se 9 é divisível por qualquer número entre 2 e 8. A saída será:


9 é divisível por 3

Ou seja, o número 9 não é primo, porque foi possível encontrar outro número que o divide além de 1 e ele mesmo.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!