Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Aula 4 - Estruturas de Repetição (Questão 7)

Olá gostaria de tirar uma dúvida que tive durante a realização do exercício que pedia para dizer se um número é primo ou não. Em específico quanto a este trecho do código de correção da atividade.

    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

O que impede que o número 2 não altere o valor de "eh_primo" para "False" e ainda seja considerado um número primo ao passar nesse "if num % i == 0", uma vez que o resultado de 2 % 2 é igual a 0?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

Ei! Tudo bem, Allan?

O número 2 não entra na condição do if porque o for está definido como range(2, num). Isso significa que o loop vai de 2 até num - 1, e não chega a testar o próprio número.

Ou seja, quando num = 2, o range(2, 2) é vazio, então o for nem roda uma vez. Assim, a variável eh_primo permanece True, indicando que o número 2 é primo.

num = 2
eh_primo = True

for i in range(2, num):
    if num % i == 0:
        eh_primo = False
        break

print(eh_primo)  # Saída: True

Repare que, como o laço não executa, o valor de eh_primo não é alterado.

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!