É hora dos números com Ruby!
Mar 24 2023
Novamente ficando entediado com a programação ou precisa de algumas coisas novas para brincar com uma linguagem de programação mais legal? Sem dúvida , novamente estaríamos continuando a série com a frieza do Ruby . Vamos mergulhar mais uma vez no mundo dos números através do navio de rubi! Hmm, mesmo desde o ensino médio, tentamos encontrar fatores de um número manualmente, mas nunca pensamos em usar padrões comuns ou em qualquer bom algoritmo para a tarefa tediosa/chata.
Novamente ficando entediado com a programação ou precisa de algumas coisas novas para brincar com uma linguagem de programação mais legal?
Sem dúvida , novamente estaríamos continuando a série com a frieza do Ruby .
Vamos mergulhar mais uma vez no mundo dos números através do navio de rubi!
Hmm, mesmo desde o ensino médio, tentamos encontrar fatores de um número manualmente, mas nunca pensamos em usar padrões comuns ou em qualquer bom algoritmo para a tarefa tediosa/chata.
Então, vamos ver como sua implementação pode ser mais legal na classe Ruby Integer :
class Integer
def factors
1.upto(Math.sqrt(self)).select {
(self % _1).zero?
}.inject([]) {
_1 << _2 << self / _2
}.uniq.sort
end
end
pp 450.factors #=> [1, 2, 3, 5, 6, 9, 10, 15, 18, 25, 30, 45, 50, 75, 90, 150, 225, 450]
- Então, em primeiro lugar, estamos definindo esse método de fatores dentro da classe Integer para que possamos usá-lo facilmente como Integer.factors .
- Dentro do método, primeiro percorremos (atravessamos) o número inteiro 1 até a raiz quadrada do número que queremos ter fatores de .
- Em seguida, filtramos a lista para obter apenas os números que podem dividir nosso número, ou seja, self usando “(self % _1).zero?” .
- Em seguida, o encadeamos com o método de injeção para injetar números na matriz de fatores usando “_1 << _2 << self / _2" onde _1 é a matriz de fatores _2 e self/_2 são os fatores dos números que devem ser inseridos isto .
- Por fim, usamos o método uniq e sort para retornar fatores exclusivos e classificados como uma matriz.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)