1
resposta

[Dúvida] Programa não está funcionando

Olá a todos, fiz o programa abaixo, conforme o solicitado, porém não está funcionando, conseguem me ajudar?

numero = int(input("Digite um número inteiro: "))
# Lista para receber os numeros
Lista_primos = []
#Laço que vai rodar todos os números abaixo do número digitado
for num in range(2, numero):
    primo = True

for teste_divisiveis in range(2, num):
    if num % teste_divisiveis == 0:

        primo = False
        break
if primo:
    Lista_primos.append(num)
print(f"Lista de números primos: {Lista_primos}")
1 resposta

Olá, Claudio! Tudo bem?!

Toda lógica do seu código está correta! O erro do programa está justamente na identação. A identação é fundamental no Python porque substitui o uso de chaves, por exemplo, que é muito comum em outras linguagens. Então na prática, a identação vai indicar o início e fim de um bloco de código em Python. Caso a identação esteja errada, o interpretador irá apresentar um erro de sintaxe. No caso seu código, o problema está no seu segundo if que ficou fora do bloco for. É importante mencionar que a identação também implica em uma boa legibilidade do código.

Os ambientes de desenvolvimento geralmente identam de maneira automática após o uso da tecla ENTER, mas caso isso não esteja sendo possível, uma boa dica é usar a tecla TAB.

Para corrigir, ajuste seu código para a seguinte identação:

int(input("Digite um número inteiro: "))

Lista_primos = [] #Lista para receber os números

#Laço que vai rodar todos os números abaixo do número digitado
for num in range(2, numero):
    primo = True
    for teste_divisiveis in range(2, num):
        if num % teste_divisiveis == 0:
            primo = False
            break
    if primo:
        Lista_primos.append(num)

print(f"Lista de números primos: {Lista_primos}")

Após essas alterações, salve o seu arquivo e execute novamente.

Espero ter ajudado e ficarei à disposição se precisar. Conte com o apoio do fórum na sua jornada. Abraço e bons estudos!

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