#!/usr/bin/python

P = [None, 2]

count = 1

def prime4WRT (P, a, l):
    global count
    if l > count:
        # print (m, "is a prime since", l, ">", count)
        return True
    else:
        h = P[l]
        if h > a // h: # P[l]*P[l] > a
            print (a, "is a prime because", h , "^2 >", a)
            return True
        elif a % h == 0:
            print (a, "is divisible by", h)
            return False
        else:
            prime4WRT (P, a, l+1)

def generate4From (P, m, n, k):
    global count
    print ('Trying m = ', m)
    if k <= n:
        if prime4WRT (P, m, 1):
            P.append (m)
            print P
            count = k
            generate4From (P, m+2, n, k+1)
        else:
            generate4From (P, m+2, n, k)
    else:
        pass

#def gen1000Primes():
#    generate4From (3, 1000, count+1)

def printArray (P):
    global count
    for i in range(1, count):
        print ('Prime [', i, '] = ', P[i])

#gen1000Primes ()
generate4From (P, 3, 10, count+1)
printArray (P)
