From 815d5c9e041319cbd9660aca9097bfa9c7c257eb Mon Sep 17 00:00:00 2001
From: Adar Nimrod <nimrod@shore.co.il>
Date: Thu, 11 Feb 2016 10:55:47 +0200
Subject: [PATCH] Replace long with int in the C version to improve
 performance.

---
 prime.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/prime.c b/prime.c
index 1ae7925..7fa61ce 100644
--- a/prime.c
+++ b/prime.c
@@ -2,11 +2,11 @@
 #include <stdlib.h>
 #include <math.h>
 
-int isPrime(unsigned long x)
+int isPrime(unsigned int x)
 {
-    if (sqrt(x) - (unsigned long)sqrt(x) == 0)
+    if (sqrt(x) - (unsigned int)sqrt(x) == 0)
         return 0;
-    for (unsigned long i = 2; i < ceil(sqrt(x)); i++)
+    for (unsigned int i = 2; i < ceil(sqrt(x)); i++)
         if (x % i == 0)
             return 0;
     return 1;
@@ -14,13 +14,13 @@ int isPrime(unsigned long x)
 
 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++)
+    unsigned int max = atol(argv[1]);
+    unsigned int *a = malloc(sizeof(unsigned int) * max);
+    unsigned int x = 2;
+    for (unsigned int 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]);
+    for (unsigned int i = 0; i < max; i++)
+        printf("%u\n", (unsigned int)a[i]);
     return 0;
 }
-- 
GitLab