optimised and corrected primes func drastically

This commit is contained in:
shhivam 2018-09-08 23:30:00 +05:30
parent 0b206e3fc5
commit f688bee0aa
1 changed files with 20 additions and 17 deletions

View 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):