-- test n for factors a[j] for j from i to #a
local check = \ (n, a, i)
      for k, x in ipairs (a) do
          if x*x > n then => true end
          if n%x== 0 then => end
      end -- for
      => true
end

local nextprime = \ (a)
      local n = 2 + a[#a]
      while not check (n, a, 1) do
            n += 2
      end -- while
      => n
end

local primes = \ (n)
  local a = { 2, 3, 5 }
  while #a < n do
    local x = nextprime (a)
    a[1 + #a] = x
  end -- while
  => a
end

local P = primes (100000)
print (P[#P])