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