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