From 6c0dde7578709aa28860e9215de1bc4a21fa0083 Mon Sep 17 00:00:00 2001
From: Adar Nimrod <nimrod@shore.co.il>
Date: Thu, 26 Feb 2015 15:03:01 +0200
Subject: [PATCH] - Added Python, Lua and C versions. - Added a gitignore file.

---
 .gitignore |  2 ++
 prime.c    | 26 ++++++++++++++++++++++++++
 prime.lua  | 25 +++++++++++++++++++++++++
 prime.py   | 19 +++++++++++++++++++
 4 files changed, 72 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 prime.c
 create mode 100755 prime.lua
 create mode 100755 prime.py

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6daa49c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+a.out
+*.pyc
diff --git a/prime.c b/prime.c
new file mode 100644
index 0000000..1ae7925
--- /dev/null
+++ b/prime.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+
+int isPrime(unsigned long x)
+{
+    if (sqrt(x) - (unsigned long)sqrt(x) == 0)
+        return 0;
+    for (unsigned long i = 2; i < ceil(sqrt(x)); i++)
+        if (x % i == 0)
+            return 0;
+    return 1;
+}
+
+int main( int argc, char** argv)
+{
+    unsigned long max = atol(argv[1]);
+    unsigned long *a = malloc(sizeof(unsigned long) * max);
+    unsigned long x = 2;
+    for (unsigned long i = 0; i < max; x++)
+        if (isPrime(x))
+            a[i++] = x;
+    for (unsigned long i = 0; i < max; i++)
+        printf("%lu\n", (unsigned long)a[i]);
+    return 0;
+}
diff --git a/prime.lua b/prime.lua
new file mode 100755
index 0000000..0b22246
--- /dev/null
+++ b/prime.lua
@@ -0,0 +1,25 @@
+#!/usr/bin/env lua
+function isPrime (x)
+    -- Here will be a for loop
+    if math.sqrt(x) % 1 == 0 then
+        return false
+    end
+    for i = 2, math.sqrt(x) do
+        if x % i == 0 then
+            return false
+        end
+    end
+    return true;
+end
+
+primes = {}
+i = 0
+while (#primes < tonumber(arg[1])) do
+    if isPrime(i) then
+        table.insert(primes, i)
+    end
+    i = i + 1
+end
+for key, value in pairs(primes) do
+    print(value)
+end
diff --git a/prime.py b/prime.py
new file mode 100755
index 0000000..a15d9e1
--- /dev/null
+++ b/prime.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+def is_prime (x):
+    from math import sqrt, ceil
+    if sqrt(x).is_integer():
+        return False
+    for i in range(2, ceil(sqrt(x))):
+        if x%i == 0:
+            return False
+    return True
+
+if __name__ == '__main__':
+    from sys import argv
+    primes = []
+    i = 0
+    while len(primes) < int(argv[1]):
+        if is_prime(i):
+            primes.append(i)
+        i += 1
+    print(primes)
-- 
GitLab