## Sunday, 29 July 2012

### Lua: Calculate a prime number list

Lua is an extension language.

This script calculates a prime number list starting with smaller ones.

To run this script you need to install lua language: (e.g: in Debian or Ubuntu)
`\$ sudo aptitude install lua`

Current version(when this article was written) is 5.1:
`\$ sudo aptitude install lua5.1`

After installing it, lua interpreter could be found in /usr/bin/lua.

Then you copy this script in a file, e.g: primes.lua and exec:

`\$ lua primes.lua 20` # it will calculate first twenty prime numbers.

or give execution permissions to the file:
`\$ chmod a+x primes.lua`
`\$ ./primes.lua 20`

```#! /usr/bin/lua

local top = tonumber(arg[1])  -- number of primes to calculate

local primes = {2}  -- prime list

local i=3  -- we start with number 3
local total = 1
local sqrt
sqrt = math.sqrt
while(total<top) do
local is_prime = true
local max = sqrt(i)  -- we do not need to try with every prime divisor.
for j=1, total do
local div = primes[j]
if(div>max) then
break
end
if(i%div==0) then
is_prime = false  -- currrent number is not prime
break
end
end
if(is_prime) then
table.insert(primes,i)  -- a prime found.
total = total + 1
end
i = i + 2
end

-- show prime number list.
for i=1,# primes do
print(primes[i])
end
```

#### REFERENCE

Lua Tutorial Directory