5 from random import randint
12 print "%i is most probably a prime number." % n
14 print "%i is not a prime number." % n
21 print "%i is probably a prime." % n
23 print "%i is not a prime." % n
27 while len(aset) < int(log(n)):
28 aset.add(randint(2, n-1))
30 if not is_prime(n, a):
34 def is_prime(n, a=None):
39 #print "Prime Test for %i with a = %i:" % (n, a)
41 if r != 1 or not isProbPrime:
42 #print "=> %i is not a prime." % n
45 #print "=> %i is probably a prime." % n
54 #print "power(%i, %i, %i)" % (a, p, n)
55 #print "result = %i" % r
56 if r == 1 and x != 1 and x != n-1:
58 #print "isProbPrime = False"
61 #print "updated result = %i" % r
64 from argparse import ArgumentParser
67 parser = ArgumentParser(description='Applies the randomised prime number test.')
68 parser.add_argument('n', type=int, help='number to be tested')
69 parser.add_argument('-a', type=int, help='provide a yourself')
70 parser.add_argument('-s', action='store_true', help='multiple tests to minimise probability of failure')
71 return parser.parse_args()
73 if __name__ == "__main__":