local nums = {}
local s; local n; local m; local lim
local yorn
print(os.date("Today is a %A, in %B"))
io.write("Enter limit for this search (empty for default): ")
lim = tonumber(io.read())
if lim == nil then lim = 100000000 end
s = math.sqrt(lim)
local tStart = os.time()
for n = 1, lim do
nums[n] = false
end
for n = 2, s do
if nums[n] == false then
m = n * n
while m <= lim do
nums[m] = true
m = m + n
end
end
end
print("It took " .. (os.time() - tStart) .. " seconds to complete.")
io.write("Do you want to list results (Y/N)? ")
yorn = io.read()
if yorn == "Y" or yorn == "y" then
print("The primes up to " .. lim .. " are: ")
else
print("(please wait for count...)")
end
m = 0
for n = 2, lim do
if nums[n] == false then
if yorn == "Y" or yorn == "y" then print(n) end
m = m + 1
end
end
print("")
print("Total primes = " .. m)