1
resposta

alguem pode explicar onde esta errado meu codigo? e apontar uma soluçao q n use logica booleana

Questao 5 - Faça um programa que, ao inserir um número qualquer, cria uma lista contendo todos os números primos entre 1 e o número digitado. abaixo o meu codigo q n está funcionando. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Boa noite. Segue minha sugestão:

lista_primo = []
valor = int(input('digite um valor: '))

# Considerando que 1 não é número primo e não tem primo entre 1 e 2, só a partir do número 3 haverá primos entre 1 e o número informado:
if valor <= 2:
  print(f'Não existem números primos entre 1 e o valor informado.') 

for num1 in range (2, valor):  # Início 2 pq só vamos acrescentar à lista valores a partir do 2
  cont = 0 # O contador deve ficar aqui para ele pegar o valor zero novamente, senão fica acumulando para os próximos valores de num1
  for num2 in range (2, num1): #  Início 2 pq não vamos testar divisão por 1. Final deve ser num1 e não valor
    if num1%num2 == 0:
      cont +=1
  if cont == 0: # como não estamos considerando o 1 e nem o próprio número, não pode ter nenhum outro com divisão exata
    lista_primo.append(num1)
print(f'Lista de números primos entre 1 e o valor informado: {lista_primo}')