User:Chridd/sandbox1
Appearance
# find primes from 3 up to max max = 50 primes = [] for n in range(3, max): composite = False for d in range(2, n-1): if n % d == 0: composite = True break if not composite: primes.append(n) count = len(primes) yes_marker = '[[Image:Yes check.svg|10px]]' # tick (U.S. "check") for residues no_marker = '[[Image:Black x.svg|10px]]' # cross for non-residues def colortag(n): if n % 4 == 1: return 'bgcolor=#e0ffff' else: return 'bgcolor=#ffe0e0' # computes Legendre symbol (a/q) # assumes a and q positive, q prime, (a, q) = 1 def legendre(a, q): for n in range(1, q-1): if (n * n) % q == a % q: return 1; return -1; # print table header print '{| class="wikitable"' print '|-' print '| || colspan=' + str(count+1), 'align="center" |', "''p''" print '|-' print '| rowspan=' + str(count+1), "| ''q'' || ", for p in primes: print '||', colortag(p), 'align="center" style="border-bottom:2px solid" |', "'''" + str(p) + "'''", print # now the main table for q in primes: # first column print '|-' print '|', colortag(q), 'align="right" style="border-right:2px solid" |', "''' " + str(q) + " '''", # remaining columns for p in primes: print '||', colortag(1+(p-1)*(q-1)/2), '|', if p == q: print ' ', else: # symbol for (p/q) if legendre(p, q) == 1: print yes_marker, else: print no_marker, if legendre(q, p) == 1: print yes_marker, else: print no_marker, print print '|}'
p | |||||||||||||||
q | 3 | 5 | 7 | 11 | 13 | 17 | 19 | 23 | 29 | 31 | 37 | 41 | 43 | 47 | |
3 | |||||||||||||||
5 | |||||||||||||||
7 | |||||||||||||||
11 | |||||||||||||||
13 | |||||||||||||||
17 | |||||||||||||||
19 | |||||||||||||||
23 | |||||||||||||||
29 | |||||||||||||||
31 | |||||||||||||||
37 | |||||||||||||||
41 | |||||||||||||||
43 | |||||||||||||||
47 |