Ao ler o artigo do Marco André sobre uma função que determina os números primos até 1000 em http://www.pythonbrasil.com.br/moin.cgi/DeterminandoPrimos resolvi portá-la para lua.
A lógica é a mesma. Algumas considerações:
- Em Lua não existe o operador += (somar e atribuir) assim como não existe o ++ (operador de incremento)
- O {2} é uma tabela (table) em Lua.
- O código abaixo é o equivalente à última versão do Marco André
primos.lua
limite = 1000
c = 1
p = 1
primos = {2}
for numero = 3,limite,2 do
ehprimo = 1
for key,i in pairs(primos) do
c = c + 1
if i > math.sqrt(numero) then
break
end
if math.mod(numero,i)== 0 then
ehprimo = 0
break
end
end
if ehprimo == 1 then
table.insert(primos, numero)
p = p + 1
end
end
pr = table.concat(primos," ")
print(pr)
print("\n\nForam encontrados " .. p .. " números primos.")
print("Foram necessárias " ..c .. " comparações.")
Subscribe: 



