key += 1 len -= 1 return 1 def permutations(seq): if len(seq) == 1: yield seq else: for i in xrange(len(seq)): for j in [[seq[i]] + x for x in permutations(seq[:i] + seq[i+1:])]: yield j # try all # of digits counting down from 7 digits = range(1,8) digits.reverse() for d in digits: # iterate through permutations in reverse numerical order for l in [[str(c) for c in range(1,d)]]: found = False l.reverse() lenl = len(l) print l while permute(l,lenl): il = int(''.join(l)) if rabin_miller(il): print il found = True break if found: break
def filter_prime(num): global primed primed += 1 if primed % 10 == 0: print "prime candidate: " + str(num) if rabin_miller(num): return num return False