Last active
December 13, 2023 02:54
-
-
Save farribeiro/adb4cb2150856d9a2b94e7a58c6d0edf to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Numeros primos | |
-- Inicializa a tabela 'primos' com o número 2, que é o primeiro número primo | |
primos = {2} | |
-- Função para verificar se um número é primo | |
function ehPrimo(num) | |
-- Verifica se o número é menor ou igual a 1, retornando falso nesses casos e | |
-- verifica se o número é par, excluindo todos os números pares maiores que 2, que não são primos | |
if num <= 1 or num % 2 == 0 then | |
return false | |
-- Verifica se o número é igual a 2, que é um número primo | |
-- elseif num == 2 then | |
-- return true | |
end | |
-- Define o limite para verificar os divisores até a raiz quadrada do número em questão | |
local limite = math.sqrt(num) | |
-- Loop para verificar se o número é divisível por algum número primo anterior | |
for _, var in ipairs(primos) do | |
-- Se o número primo atual for maior que a raiz quadrada do número, para a verificação | |
if var > limite then | |
break | |
-- Se o número for divisível pelo número primo atual, retorna falso (não é primo) | |
elseif num % var == 0 then | |
return false | |
end | |
end | |
-- Se o número não for divisível por nenhum número primo anterior, é considerado primo | |
return true | |
end | |
-- Loop para encontrar números primos de 3 a 10000 (somente números ímpares são verificados) | |
for num = 3, 10000, 2 do | |
-- Verifica se o número é primo usando a função 'ehPrimo' e o adiciona à tabela 'primos' se for primo | |
if ehPrimo(num) then | |
table.insert(primos, num) | |
end | |
end | |
-- Imprime os números primos separados por espaços | |
io.write(table.concat(primos, " ")) | |
print (("Quantidade de numeros encontrados %d"):format(#primos)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment