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 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!
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...
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 ...
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
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
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
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!
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
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?
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?
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 😉
@@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 ?
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.
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
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.
É 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 :)
Uau que vídeo excelente, estava com dificuldade para entender como checar um número primo utilizando √n e agora finalmente entendi
Que bom que ajudou 😉
Adorei a sua aula! Muitíssimo obrigada! ^-^
De nada! Bons estudos 🙌🏾
Excelente
Valeu!
Bacana o conteudo, valeu
Nós que agradecemos!
aula muito boa
Obrigado!
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!
Valeu! Que bom que ajudou 🙌🏾
@@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!
Bonita camiseta de Floripa!!! 🌉
hahaha, valeu!
Mais um pra conta. Obrigado.
Parabéns! 👏🏾😊
♥️
❤️
Gostei😍
🙌🏾🥳
Show!!
Valeu!
Muito bom mano!!! Não desiste do canal
Obrigado pelo apoio! O canal continua firme e forte :)
Muito show!!!!!
Obrigado! 😊
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...
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.
@@pgdinamica quando puder faz um vídeo assim 🙂, dizem que é possível usando Sympy mas também não sei como ...
@ 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.
Muito bom !
Obrigado, Jean! Continue acompanhando!
Que conteúdo realmente produtivo. Parabéns (Like e +1 inscrito)
Valeu! Seja bem vindo!
Boa tarde meu amigo.
Ótima aula
Valeu Rodrigo!
Muito obrigado
Boa cara! Continua com o canal! Ganhou +1 inscrito!
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
Show, man! Ah! Tenho esse box do Homero, Top!
haha, #tmj!
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
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
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!
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
@@pgdinamica Obrigado! Vou dar um estudada no módulo.
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?
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?
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 😉
@@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
?
2 aulas em 1..
✌🏾
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.
Olá! Ótimo canal, parabéns!
Só uma dúvida, de onde foi tirado que a > raiz de n?
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
segui o exemplo e dá que 1 é true mas 1 não é primo
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.
agora é só colocar "n not in (0,1)"
É 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 :)
Muito difícil !!!!!!!!!!!!!!!!!!!!!!!!
Muito bom!
Valeu!