Não estou conseguindo extrair todos os divisores....

Python Divisores matemática algoritmos scripts

           ... De valores não primos, não consigo sair disso : https://ibb.co/ZSQ2wdG

           O que está faltando para eu saciar esse script ?

Foto de Jorge S.
Jorge Victor perguntou há 3 anos

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
1 resposta
0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Amador R.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 mês

Parece que o código Python que da imagem do link tem a intenção de verificar se um número é primo e também de listar os seus divisores. No entanto, a partir da imagem fornecida, posso ver que há um problema com a maneira como os divisores estão sendo calculados e listados.

Para corrigir o problema e listar todos os divisores de um número, você pode seguir esses passos:

  1. Verifique se o número não é primo, como você já fez.
  2. Em vez de usar a divisão inteira para listar os divisores, use um loop para testar todos os números menores que o número de entrada (exceto o 1) e verificar se eles são divisores.

Aqui está um exemplo de como você pode alterar o código para listar corretamente todos os divisores de um número inteiro (tanto positivo quanto negativo):

a = int(input('Insira um valor inteiro: '))

if a == 2 or a == -2:
    print('É um número primo')
elif a % 2 == 0:
    print('Não é um número primo')
else:
    divisores = [1]
    for n in range(2, abs(a)):
        if a % n == 0:
            divisores.append(n)
    if len(divisores) == 1:
        print('É um número primo')
    else:
        print('Não é um número primo')
        print(divisores)

Este código verifica primeiro se o número é 2 ou -2 (casos especiais de números primos). Depois, se o número for divisível por 2, ele não é primo. Para outros casos, ele verifica todos os possíveis divisores e os adiciona a uma lista se forem de fato divisores do número. Se a lista de divisores tiver apenas o número 1, então o número é primo. Caso contrário, o código imprime a lista de divisores.

Você também deve remover o código que tenta usar a divisão inteira para encontrar os divisores, pois essa abordagem não é necessária e pode levar a resultados incorretos.

Espero que isso ajude!

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

Professores particulares de Python

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 40 / h
Amador R.
Recife / PE
Amador R.
5,0 (1 avaliação)
Tarefas resolvidas 1 tarefa resolvida
Identidade verificada
  • CPF verificado
  • E-mail verificado
Python - Programação Orientada a Objetos Python - Estruturas de decisão Python - Jupyter Notebook
Mestrado: Ciências da Computação (UFPE)
Aprenda python: do básico ao avançado com exemplos práticos. Torne-se um programador procurado! Inicie agora.
R$ 60 / h
César D.
Mogi Guaçu / SP
César D.
4,9 (817 avaliações)
Horas de aulas particulares ministradas 87 horas de aula
Tarefas resolvidas 1.007 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Programação em Python NumPy Programação em Python Básico Python - Geral
Graduação: Matemática Aplicada e Computacional (Universidade Estadual de Campinas (UNICAMP))
Faça aulas de matemática, computação e programação em c, c++, java e python.
R$ 120 / h
Johny L.
Fortaleza / CE
Johny L.
4,3 (36 avaliações)
Horas de aulas particulares ministradas 97 horas de aula
Tarefas resolvidas 29 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
Python - lista Python - Intermediário Python - Programação Orientada a Objetos
Graduação: Engenharia Civil (IFCE - Campus Fortaleza)
Professor da UFC - Aulas de estatística práticas e aplicadas ao mercado de trabalho além de acadêmico