Skip to content

Instantly share code, notes, and snippets.

@yugi386
Created December 27, 2011 16:12
Show Gist options
  • Save yugi386/1524178 to your computer and use it in GitHub Desktop.
Save yugi386/1524178 to your computer and use it in GitHub Desktop.
Função para gerar todos os números primos até dado limite
# Função que retorna todos os números primos até dado limite
def mapaprimo(limite)
# se limite = 1_000_000 o processamento deve durar cerca de 20s num intel 2,4GHZ
xcont = 5
num = 13
mapaprimo = Array.new
mapaprimo[0] = 2
mapaprimo[1] = 3
mapaprimo[2] = 5
mapaprimo[3] = 7
mapaprimo[4] = 11
while TRUE
primo = TRUE
divide = 3
cont = 0
tam = mapaprimo.size
tam = tam -1
while TRUE
if num % divide == 0
primo = FALSE
break
end
if cont <= tam
divide = mapaprimo[cont]
else
break
end
if (divide * divide) > num
break
end
cont = cont + 1
end
if primo
mapaprimo[xcont] = num
xcont = xcont + 1
end
num = num + 2
if num > limite
break
end
end
return mapaprimo
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment