def multiplicador(options = {}, &_block)
      raise ArgumentError, 'Número inválido' unless is_number?
      raise ArgumentError, 'Fatores não podem estar em branco' unless options[:fatores]

      total = 0
      multiplicador_posicao = 0
      fatores = options[:fatores]
      numeros = options[:reverse].nil? ? to_s.split(//).reverse! : to_s.split(//)

      numeros.each do |caracter|
        fator = fatores[multiplicador_posicao]
        total += block_given? ? yield(caracter, fator) : (caracter.to_i * fator)
        multiplicador_posicao = multiplicador_posicao < (fatores.size - 1) ? (multiplicador_posicao + 1) : 0
      end
      total
    end
def multiplicador(options = {}, &_block)
      raise ArgumentError, 'Número inválido' unless is_number?
      raise ArgumentError, 'Fatores não podem estar em branco' unless options[:fatores]

      total = 0
      multiplicador_posicao = 0
      fatores = options[:fatores]
      numeros = options[:reverse].nil? ? to_s.split(//).reverse! : to_s.split(//)

      numeros.each do |caracter|
        fator = fatores[multiplicador_posicao]
        total += block_given? ? yield(caracter, fator) : (caracter.to_i * fator)
        multiplicador_posicao = multiplicador_posicao < (fatores.size - 1) ? (multiplicador_posicao + 1) : 0
      end
      total
    end
Faz a multiplicação de um número pelos fatores passados como parâmetro.

 @param  [Array]
 @return [Integer]
 @raise  [ArgumentError] Caso não seja um número inteiro.