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

[Sugestão] Estrutura de dados - aquecendo na programação - questão 4

Fiz um codigo diferente do gabarito. Gostaria de saber a opniao.

Codigo:

numero_primo = int(input("digite um numero: "))
lista_de_numeros_primos = []
numero_1 = 0

while numero_primo > numero_1:
  numero_1 += 1
  if (numero_1 % 2) > 0:
    lista_de_numeros_primos.append(numero_1)
print(lista_de_numeros_primos)
1 resposta
solução!

Oi, Juan! Como você está?

Parabéns pelo desenvolvimento do desafio! Olhando seu código mais de perto, notei que ele está, na realidade, adicionando todos os números ímpares à lista, e não apenas os números primos. Para um número ser considerado "primo" ele deve ter apenas dois divisores: 1 e ele mesmo. Alguns exemplos são os números 2, 3, 5, 7, 11 e 13.

Reorganizando a lógica do seu programa, podemos chegar neste exemplo:

numero_usuario = int(input("Digite um número: "))
lista_de_numeros_primos = []
numero = 2  # começamos em 2, porque 1 não é primo

while numero <= numero_usuario:
    i = 2
    while i < numero:
        if (numero % i) == 0:  # se o número é divisível por i, ele não é primo
            break
        i += 1
    else:  # se não encontramos nenhum divisor, o número é primo
        lista_de_numeros_primos.append(numero)
    numero += 1

print(lista_de_numeros_primos)

Com o código acima, verificamos todos os números entre 2 e o número que você digitou para ver se eles são primos. Se um número é primo (considerando a regra que apresentei anteriormente), ele é adicionado à lista!

Espero que tenha ficado mais claro, Juan! Fico muito feliz em vê-lo desenvolvendo suas habilidades. Continue caprichando e se dedicando aos estudos!

Se alguma dúvida surgir, pode contar comigo.

Um abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!