Boa noite, fiz esse código que mostra na tela os números primos entre 1 e 20. Eu estava tendo dificuldades para conseguir o output esperado (que está comentado na penúltima linha), essa dificuldade aconteceu pois dentro do corpo da função "primo" eu estava usando as linhas que lá estão comentadas ao invés das que estão sendo usadas agora, e com isso, o output estava sendo toda a sequência de números de 2 até 20. Eu resolvi tal problema transformando as linhas que estão comentadas na função para o modo em que elas estão agora, no entanto, eu não entendi o motivo de os dois modelos darem resultados diferentes, sendo que nos cálculos que fiz enquanto programava, ambas as formas deveriam dar o output correto.
Pergunta
Lucas Snts
def primo(num):
for i in range(2,21):#for i in range(1,20):
if num==i:#num==i+1
continue
if num%i==0:#if num%i+1==0:
return False
else:return True
for i in range(1, 20):
if primo(i+1):
print(i+1, end=" ")
print()
#Output atual (correto):2 3 5 7 9 11 13 15 17 19
#Output antigo(errado):2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Boa noite, fiz esse código que mostra na tela os números primos entre 1 e 20. Eu estava tendo dificuldades para conseguir o output esperado (que está comentado na penúltima linha), essa dificuldade aconteceu pois dentro do corpo da função "primo" eu estava usando as linhas que lá estão comentadas ao invés das que estão sendo usadas agora, e com isso, o output estava sendo toda a sequência de números de 2 até 20. Eu resolvi tal problema transformando as linhas que estão comentadas na função para o modo em que elas estão agora, no entanto, eu não entendi o motivo de os dois modelos darem resultados diferentes, sendo que nos cálculos que fiz enquanto programava, ambas as formas deveriam dar o output correto.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.