]> xmof Git - DeDRM.git/commitdiff
optimised and corrected primes func drastically
authorshhivam <kas442000@gmail.com>
Sat, 8 Sep 2018 18:00:00 +0000 (23:30 +0530)
committershhivam <kas442000@gmail.com>
Sat, 8 Sep 2018 18:00:00 +0000 (23:30 +0530)
src/kindlekey.py

index e20b7c95b0825fdb3809d53295d20fa914c9a794..06aaddcb3cd1030144d53150796099ce7ffe6d48 100644 (file)
@@ -126,23 +126,26 @@ def SHA256(message):
 # For K4M/PC 1.6.X and later
 # generate table of prime number less than or equal to int n
 def primes(n):
-    if n==2: return [2]
-    elif n<2: return []
-    s=range(3,n+1,2)
-    mroot = n ** 0.5
-    half=(n+1)/2-1
-    i=0
-    m=3
-    while m <= mroot:
-        if s[i]:
-            j=(m*m-3)/2
-            s[j]=0
-            while j<half:
-                s[j]=0
-                j+=m
-        i=i+1
-        m=2*i+3
-    return [2]+[x for x in s if x]
+    """
+    Return a list of prime integers smaller than or equal to n
+    :param n: int
+    :return: list->int
+    """
+    if n == 2:
+        return [2]
+    elif n < 2:
+        return []
+    primeList = [2]
+
+    for potentialPrime in range(3, n + 1, 2):
+        isItPrime = True
+        for prime in primeList:
+            if potentialPrime % prime == 0:
+                isItPrime = False
+        if isItPrime is True:
+            primeList.append(potentialPrime)
+
+    return primeList
 
 # Encode the bytes in data with the characters in map
 def encode(data, map):