Números Primos | Matemática com Python

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ธ.ค. 2024

ความคิดเห็น • 63

  • @gabrielcorreia6584
    @gabrielcorreia6584 ปีที่แล้ว +1

    Uau que vídeo excelente, estava com dificuldade para entender como checar um número primo utilizando √n e agora finalmente entendi

    • @pgdinamica
      @pgdinamica  ปีที่แล้ว

      Que bom que ajudou 😉

  • @FairyBevix
    @FairyBevix ปีที่แล้ว

    Adorei a sua aula! Muitíssimo obrigada! ^-^

    • @pgdinamica
      @pgdinamica  ปีที่แล้ว

      De nada! Bons estudos 🙌🏾

  • @PedroA.Wingert
    @PedroA.Wingert 10 หลายเดือนก่อน

    Excelente

    • @pgdinamica
      @pgdinamica  9 หลายเดือนก่อน

      Valeu!

  • @BrunoOliveira-zw2be
    @BrunoOliveira-zw2be 2 ปีที่แล้ว

    Bacana o conteudo, valeu

    • @pgdinamica
      @pgdinamica  2 ปีที่แล้ว +1

      Nós que agradecemos!

  • @GabrielOliveira-mm4dz
    @GabrielOliveira-mm4dz ปีที่แล้ว

    aula muito boa

  • @reneeduardooliveira7095
    @reneeduardooliveira7095 2 ปีที่แล้ว +2

    Caraca... Estava quebrando a cabeça para entender como imprimir n números primos (livro do Nilo, Exercício 5.24) ... O lance lá seria para usar while puro e ainda sem funções... E achei este vídeo aleatoriamente... Simplesmente top d+ esse video! Baita aula! Obrigado!

    • @pgdinamica
      @pgdinamica  2 ปีที่แล้ว +1

      Valeu! Que bom que ajudou 🙌🏾

    • @reneeduardooliveira7095
      @reneeduardooliveira7095 ปีที่แล้ว

      @@pgdinamica Ajudou! Mas a memória é de elefante... Cheguei no Exercício 8.16 (Escreva um generator capaz de gerar a série dos números primos) e aqui estou de novo em seu video para relembrar hahaha
      Um abraço!

  • @Pedro_Nora
    @Pedro_Nora 3 ปีที่แล้ว

    Bonita camiseta de Floripa!!! 🌉

  • @alissoncelestino4938
    @alissoncelestino4938 4 ปีที่แล้ว

    Mais um pra conta. Obrigado.

    • @pgdinamica
      @pgdinamica  4 ปีที่แล้ว

      Parabéns! 👏🏾😊

  • @ma5nusz21
    @ma5nusz21 2 ปีที่แล้ว

    ♥️

  • @elianefreire9946
    @elianefreire9946 3 ปีที่แล้ว

    Gostei😍

  • @oscarrocon2439
    @oscarrocon2439 4 ปีที่แล้ว

    Show!!

  • @sapodramatico2396
    @sapodramatico2396 6 ปีที่แล้ว +2

    Muito bom mano!!! Não desiste do canal

    • @pgdinamica
      @pgdinamica  6 ปีที่แล้ว +1

      Obrigado pelo apoio! O canal continua firme e forte :)

  • @simaopedro4117
    @simaopedro4117 4 ปีที่แล้ว

    Muito show!!!!!

  •  3 ปีที่แล้ว

    Já viu o solve equation da HP 50g ? Ela faz algo simples que ainda não consegui reproduzir no python... Gostaria de inserir uma fórmula, adicionar as variáveis e achar o resultado... Ex: V=D/T , se eu colocar T e D acho o V se coloco o V e T acho o D e se coloco o D e V acho o T ... Desenvolver uma função def no modo convencional atrasa muito a análise porque só vou ter um caminho por vez para encontrar cada valor...

    • @pgdinamica
      @pgdinamica  3 ปีที่แล้ว +1

      Difícil reproduzir exatamente da mesma forma de usar no Python, porque você precisaria mudar o sentido do operador "="; mas você pode criar uma função que recebe a fórmula como string e realiza o que você quer:
      def operar(expressao):
      (...)
      formula = "2 = D/3"
      resultado = operar(formula)
      Dentro da função "operar", você tem que tratar a string, separar cada parte da expressão, identificar quais são números e qual é letra (a variável) e usar o caractere da operação e a posição da variável para saber a conta que será realizada.

    •  3 ปีที่แล้ว

      @@pgdinamica quando puder faz um vídeo assim 🙂, dizem que é possível usando Sympy mas também não sei como ...

    • @pgdinamica
      @pgdinamica  3 ปีที่แล้ว

      @ anotei aqui, talvez dê pra encaixar na agenda de outubro, tava pensando em fazer uns conteúdos mais voltados pro público iniciantes de novo.

  • @saraujo88
    @saraujo88 6 ปีที่แล้ว +1

    Muito bom !

    • @pgdinamica
      @pgdinamica  6 ปีที่แล้ว

      Obrigado, Jean! Continue acompanhando!

  • @gabrielgalucio4296
    @gabrielgalucio4296 4 ปีที่แล้ว +1

    Que conteúdo realmente produtivo. Parabéns (Like e +1 inscrito)

    • @pgdinamica
      @pgdinamica  4 ปีที่แล้ว

      Valeu! Seja bem vindo!

  • @rodrigoeus5272
    @rodrigoeus5272 5 ปีที่แล้ว

    Boa tarde meu amigo.
    Ótima aula

  • @isaacribeirodasilva712
    @isaacribeirodasilva712 5 ปีที่แล้ว

    Muito obrigado

  • @felipzz_7132
    @felipzz_7132 5 ปีที่แล้ว +2

    Boa cara! Continua com o canal! Ganhou +1 inscrito!

  • @VictorMoyer
    @VictorMoyer 4 ปีที่แล้ว

    Meio complicado no inicio , mas depois da pra entender a situação, muito bom video explicando poderia ate criar series futuras como otmizando algoritmos ou descomplicando eles

  • @diegoaraujo1387
    @diegoaraujo1387 4 ปีที่แล้ว

    Show, man! Ah! Tenho esse box do Homero, Top!

  • @leonardomiguel9113
    @leonardomiguel9113 5 ปีที่แล้ว

    Tenho uma duvida ou até poderia ser uma sugestão.
    E se fosse excluída da verificação no teste no laço for quando d for par?. Ou seja incrementar tipo
    d = d + 2, partindo do 3. Aí ficaria um laço 3, 5, 7,9,11... Pois dessa maneira otimizariamos os cálculos.
    Pensei nisso, pois a verificação para saber se um número é primo parti da condição de divisibilidade de n fatores primos.
    Isso poderia ser feito?.
    Parabéns pelo vídeo, não fazia idéia que poderia usar radiciação para otimizar os cálculos.
    Faça mais vídeos assim

    • @pgdinamica
      @pgdinamica  5 ปีที่แล้ว

      Poderia ser feito, sim, Leonardo! No entanto, o "d" iniciando em 2 serve para eliminar os números pares dentro do laço. Se você remover o 2 do laço, os números que são apenas potência de 2, por exemplo 8, não serão eliminados e vão aparecer como primos. Para resolver isso, você teria que testar explicitamente esses casos, tipo assim:
      def eh_primo(n):
      if n % 2 ==0: # verifica se é par
      return True if n == 2 else False # 2 é primo; os demais pares, não
      raiz = int(math.sqrt(n))
      for d in range(3, raiz +1, 2): # adicionado 2 como "passo" na função range
      if n % d == 0:
      return False
      return True

  • @andersonluizneto4294
    @andersonluizneto4294 5 ปีที่แล้ว

    Muito bom o vídeo e sua explicação!
    Você poderia me dizer como eu usaria, seu exemplo para testar inteiros muito grandes? Ao usar a função math.sqrt() para números grandes obtenho o erro OverflowError, que acontece quando a função tenha converter o int muito grande em float.
    Desde já agradeço!

    • @pgdinamica
      @pgdinamica  5 ปีที่แล้ว +1

      Fala, Anderson, blz?
      Sugiro usar o módulo "decimal": docs.python.org/3.7/library/decimal.html
      from decimal import Decimal
      numero_grande = Decimal(NUMERO_GRANDE_AQUI)
      raiz = numero_grande.sqrt()
      Testei com um número de 344 dígitos (que falhava com math.sqrt() ). Você pode alterar a precisão padrão do módulo decimal, se precisar.
      []s

    • @andersonluizneto4294
      @andersonluizneto4294 5 ปีที่แล้ว

      @@pgdinamica Obrigado! Vou dar um estudada no módulo.

  • @alif123ferreira
    @alif123ferreira 3 ปีที่แล้ว

    Olá, estou tentando limitar para que o usuário digite até o número 100, caso ele digite um número maior que 100 o comando é encerrado com aviso que o número está fora da faixa. Como posso fazer isso?

  • @raniel0511
    @raniel0511 3 ปีที่แล้ว

    Assistido✔️
    Depois desse vídeo, hora de dar uma pausa e ir assistir aquela playlist X do professor de matemática Y pra poder formular e entender o seu raciocínio xD.
    A propósito não daria pra resolver usando o módulo? Exemplo
    def eh_primo (n)
    if n % n == 0 and n % 1 == 0
    print ("É primo!)
    else:
    print("Não é primo!")
    Ainda sou um iniciante então meu programa pode estar feinho mas enfim não era só pegar o módulo de n e 1?

    • @pgdinamica
      @pgdinamica  3 ปีที่แล้ว

      Oi, Raniel, n % n e n % 1 são sempre zero. A sua função exibe “é primo” para qualquer inteiro. 1 e n são sempre divisores de n; quando um número é primo, estes são *os únicos* divisores dele.
      Falamos sobre matemática às sextas-feiras na Twitch: matematica.pgdinamica.com 😉

    • @raniel0511
      @raniel0511 3 ปีที่แล้ว

      @@pgdinamica E se eu colocar uma terceira condição no meu circuito lógico onde eu preciso de três AND? Exemplo:
      n%1 == 0
      n%n == 0
      n%número aleatório entre 2 e n-1 == 0
      ?

  • @danieldamn
    @danieldamn 4 ปีที่แล้ว

    2 aulas em 1..

  • @carlaneves2305
    @carlaneves2305 5 ปีที่แล้ว +2

    Olá, vc tem um e-mail ou outro contato? queria tirar mais duvidas... podes me ajudar. To começando na primeira fase, preciso muito de uma luz.. faço a facu on line.. não ta facil.. Mas Deus vai me ajudar.

  • @fellipecoelho6492
    @fellipecoelho6492 4 ปีที่แล้ว +1

    Olá! Ótimo canal, parabéns!
    Só uma dúvida, de onde foi tirado que a > raiz de n?

  • @williamwalterpereira
    @williamwalterpereira 5 ปีที่แล้ว +2

    Fiz algo semelhante mas utilizando C++
    Eu salvo em uma lista todos os números primos já calculados e a medida que vou descobrindo novos, o programa adiciona a essa lista
    Então eu percorro a lista e só testo o resto da divisão com os números primos menor ou iguais a raiz do numero que foi passado na função eh_primo. Por exemplo, para testar se o numero 100 é primo, o programa só precisa ir até o 10. Junto com a lista, ele só testa com o resto da divisão por 2, 3, 5 e 7. 4 cálculos ao invés de 9
    Link pra quem quiser conferir o código >> github.com/WalterWill/Prime_numbers

  • @SATOR7304
    @SATOR7304 2 ปีที่แล้ว

    segui o exemplo e dá que 1 é true mas 1 não é primo

    • @pgdinamica
      @pgdinamica  2 ปีที่แล้ว

      Sim, o algoritmo deve ser restrito a números inteiros maiores ou iguais a 2. É uma decisão de projeto se você vai tratar números negativos também; eu preferiria analisar só os positivos e deixar a cargo do cliente do algoritmo explicitar que tem interesse no valor absoluto.

  • @danieldamn
    @danieldamn 4 ปีที่แล้ว

    agora é só colocar "n not in (0,1)"

    • @pgdinamica
      @pgdinamica  4 ปีที่แล้ว

      É verdade, não fizemos nenhum tipo de validação de entrada neste vídeo (intervalo do n, tipo de dado etc), mas se quiser aplicar a função na vida real, será importante fazer :)

  • @marciomattos8961
    @marciomattos8961 5 ปีที่แล้ว

    Muito difícil !!!!!!!!!!!!!!!!!!!!!!!!

  • @MarcosVinicius-pz1lc
    @MarcosVinicius-pz1lc 2 ปีที่แล้ว +1

    Muito bom!