Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save humbertodosreis/d64689bf1f588afb56e3f6afb3faecb0 to your computer and use it in GitHub Desktop.
Save humbertodosreis/d64689bf1f588afb56e3f6afb3faecb0 to your computer and use it in GitHub Desktop.
Dado dois parâmetros os, sendo o primeiro um vetor de inteiros e o segundo um inteiro, retorne todos os pares de inteiros cujo o resultado de sua multiplicação seja igual ao segundo parâmetro .
--[[
Dado dois parametros, sendo o primeiro um vetor de inteiros e o segundo um inteiro,
retorne todos os pares de inteiros cujo o resultado de sua
multiplicação seja igual ao segundo parametro.
Ex:In: [2, 4, 3, 1, 12, 6] e 12 Out: [(2, 6), (4, 3), (1, 12)]
--]]
local table = require "luatable"
local lista = table({2, 4, 3, 1, 12, 6})
local esperado = 12
local pares = table({})
local encontrados = table({})
for i = 1, #lista do
local atual = lista[i]
for j = 1, #lista do
repeat
if i == j or encontrados:find(j) then
break
end
local produto = lista[j] * atual
if produto == esperado then
pares:append({atual, lista[j]})
encontrados:append(i)
end
until true
end
end
pares:eachi(function(v) print(v[1] .. ", " .. v[2]) end)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment