statistical_trace_of_frobenius

4223 days ago by comphy

N = 1000 E = EllipticCurve([0, 0, 0, -1, 0]) champion = [] rest = [] for p in prime_range(N): if E.has_good_reduction(p): trace = E.reduction(p).trace_of_frobenius() if trace <= -floor(2 * sqrt(p)): champion.append((p, 1 + p - trace)) else: rest.append((p, 1 + p - trace)) championPoints = point2d(champion, rgbcolor = (1, 0, 0)) restPoints = point2d(rest) show(championPoints + restPoints + plot(1 + x + floor(2 * sqrt(x)), (x, 0, N))) 
       

                                
                            

                                
E.has_cm() 
       
True
True
def normalizedTracePlot(E, N): all = [] for p in prime_range(N): if E.has_good_reduction(p): trace = E.reduction(p).trace_of_frobenius() all.append((p, trace / floor(2 * sqrt(p)))) allPoints = point2d(all) show(allPoints) return 
       
N = 5000 normalizedTracePlot(EllipticCurve([0,0,0,0,17]), N) 
       

                                
                            

                                
normalizedTracePlot(EllipticCurve([0,0,0,-1,0]), N) 
       

                                
                            

                                
normalizedTracePlot(EllipticCurve([0,0,0,1,3]), N) 
       

                                
                            

                                
N = 300 spacing = 10 loA = -10 hiA = 10 loB = -10 hiB = 10 for a in range(loA, hiA): for b in range(loB, hiB): if (4*a*a*a + 27*b*b != 0): # not singular E = EllipticCurve([0,0,0,a,b]) s = '(' + repr(a) + ', ' + repr(b) + ')' if E.has_cm(): cm = 'CM' else: cm = '' print s.ljust(spacing), cm.ljust(spacing), flag = '' for p in prime_range(N): if E.has_good_reduction(p): if E.reduction(p).trace_of_frobenius() == -floor(2 * sqrt(p)): flag += repr(p).ljust(spacing) # break print flag 
       
WARNING: Output truncated!  
full_output.txt



(-10, -10)            
(-10, -9)             
(-10, -8)             3         11        67        271       
(-10, -7)             
(-10, -6)             
(-10, -5)             3         
(-10, -4)             
(-10, -3)             19        
(-10, -2)             3         
(-10, -1)             53        
(-10, 0)   CM         101       109       173       
(-10, 1)              3         53        
(-10, 2)              
(-10, 3)              11        
(-10, 4)              3         
(-10, 5)              127       
(-10, 6)              179       
(-10, 7)              3         23        
(-10, 8)              
(-10, 9)              
(-9, -10)             41        
(-9, -9)              
(-9, -8)              107       271       
(-9, -7)              
(-9, -6)              
(-9, -5)              
(-9, -4)              
(-9, -3)              
(-9, -2)              
(-9, -1)              
(-9, 0)    CM         53        
(-9, 1)               
(-9, 2)               
(-9, 3)               
(-9, 4)               
(-9, 5)               131       
(-9, 6)               
(-9, 7)               
(-9, 8)               
(-9, 9)               
(-8, -10)             11        
(-8, -9)              
(-8, -8)              
(-8, -7)              
(-8, -6)              
(-8, -5)              
(-8, -4)              
(-8, -3)              103       
(-8, -2)              19        
(-8, -1)              41        
(-8, 0)    CM         37        197       
(-8, 1)               11        41        
(-8, 2)               
(-8, 3)               
(-8, 4)               
(-8, 5)               
(-8, 6)               
(-8, 7)               
(-8, 8)               

...

(7, -10)              
(7, -9)               
(7, -8)               
(7, -7)               53        107       
(7, -6)               
(7, -5)               
(7, -4)               7         
(7, -3)               
(7, -2)               19        
(7, -1)               
(7, 0)     CM         257       
(7, 1)                
(7, 2)                
(7, 3)                7         
(7, 4)                
(7, 5)                
(7, 6)                
(7, 7)                53        
(7, 8)                
(7, 9)                
(8, -10)              5         
(8, -9)               41        
(8, -8)               3         
(8, -7)               
(8, -6)               23        
(8, -5)               3         5         79        
(8, -4)               89        
(8, -3)               271       
(8, -2)               3         29        
(8, -1)               
(8, 0)     CM         5         101       109       
(8, 1)                3         59        67        
(8, 2)                29        
(8, 3)                
(8, 4)                3         89        
(8, 5)                5         139       
(8, 6)                
(8, 7)                3         
(8, 8)                
(8, 9)                41        
(9, -10)              
(9, -9)               
(9, -8)               41        47        
(9, -7)               11        
(9, -6)               53        
(9, -5)               
(9, -4)               79        179       
(9, -3)               19        
(9, -2)               23        127       
(9, -1)               
(9, 0)     CM         29        173       229       293       
(9, 1)                151       
(9, 2)                
(9, 3)                
(9, 4)                11        
(9, 5)                
(9, 6)                53        
(9, 7)                
(9, 8)                41        
(9, 9)                
WARNING: Output truncated!  
full_output.txt



(-10, -10)            
(-10, -9)             
(-10, -8)             3         11        67        271       
(-10, -7)             
(-10, -6)             
(-10, -5)             3         
(-10, -4)             
(-10, -3)             19        
(-10, -2)             3         
(-10, -1)             53        
(-10, 0)   CM         101       109       173       
(-10, 1)              3         53        
(-10, 2)              
(-10, 3)              11        
(-10, 4)              3         
(-10, 5)              127       
(-10, 6)              179       
(-10, 7)              3         23        
(-10, 8)              
(-10, 9)              
(-9, -10)             41        
(-9, -9)              
(-9, -8)              107       271       
(-9, -7)              
(-9, -6)              
(-9, -5)              
(-9, -4)              
(-9, -3)              
(-9, -2)              
(-9, -1)              
(-9, 0)    CM         53        
(-9, 1)               
(-9, 2)               
(-9, 3)               
(-9, 4)               
(-9, 5)               131       
(-9, 6)               
(-9, 7)               
(-9, 8)               
(-9, 9)               
(-8, -10)             11        
(-8, -9)              
(-8, -8)              
(-8, -7)              
(-8, -6)              
(-8, -5)              
(-8, -4)              
(-8, -3)              103       
(-8, -2)              19        
(-8, -1)              41        
(-8, 0)    CM         37        197       
(-8, 1)               11        41        
(-8, 2)               
(-8, 3)               
(-8, 4)               
(-8, 5)               
(-8, 6)               
(-8, 7)               
(-8, 8)               

...

(7, -10)              
(7, -9)               
(7, -8)               
(7, -7)               53        107       
(7, -6)               
(7, -5)               
(7, -4)               7         
(7, -3)               
(7, -2)               19        
(7, -1)               
(7, 0)     CM         257       
(7, 1)                
(7, 2)                
(7, 3)                7         
(7, 4)                
(7, 5)                
(7, 6)                
(7, 7)                53        
(7, 8)                
(7, 9)                
(8, -10)              5         
(8, -9)               41        
(8, -8)               3         
(8, -7)               
(8, -6)               23        
(8, -5)               3         5         79        
(8, -4)               89        
(8, -3)               271       
(8, -2)               3         29        
(8, -1)               
(8, 0)     CM         5         101       109       
(8, 1)                3         59        67        
(8, 2)                29        
(8, 3)                
(8, 4)                3         89        
(8, 5)                5         139       
(8, 6)                
(8, 7)                3         
(8, 8)                
(8, 9)                41        
(9, -10)              
(9, -9)               
(9, -8)               41        47        
(9, -7)               11        
(9, -6)               53        
(9, -5)               
(9, -4)               79        179       
(9, -3)               19        
(9, -2)               23        127       
(9, -1)               
(9, 0)     CM         29        173       229       293       
(9, 1)                151       
(9, 2)                
(9, 3)                
(9, 4)                11        
(9, 5)                
(9, 6)                53        
(9, 7)                
(9, 8)                41        
(9, 9)                
N = 1000 M = 20 spacing = 11 for n in range(-M, M): if (n != 0 and n != 1): # not singular E = EllipticCurve([0, -(n + 1), 0, n, 0]) # Legendre form j = round(E.j_invariant().numerical_approx(), ndigits = 2) if E.has_cm(): cm = 'CM' else: cm = '' print repr(n).ljust(spacing), repr(j).ljust(spacing), cm.ljust(spacing), flag = '' for p in prime_range(N): if E.has_good_reduction(p): if E.reduction(p).trace_of_frobenius() == -floor(2 * sqrt(p)): if E.is_supersingular(p): flag += 'SS' flag += repr(p).ljust(spacing) print flag 
       
-20         108289.83               
-19         98050.02                
-18         88322.25                
-17         79106.51                
-16         70402.83                
-15         62211.2                 
-14         54531.66                
-13         47364.23                
-12         40708.93                89         
-11         34565.83                19         
-10         28935.0                 
-9          23816.56                419        
-8          19210.72                
-7          15117.8                 
-6          11538.43                
-5          8473.88                 
-4          5927.04                 
-3          3905.78                 
-2          2439.11                 71         691        
-1          1728.0      CM          29         173        293        977

2           1728.0      CM          29         173        293        977

3           2439.11                 
4           3905.78                 
5           5927.04                 587        
6           8473.88                 
7           11538.43                271        
8           15117.8                 19         
9           19210.72                
10          23816.56                
11          28935.0                 107        
12          34565.83                
13          40708.93                89         331        
14          47364.23                151        
15          54531.66                503        
16          62211.2                 
17          70402.83                
18          79106.51                
19          88322.25                
-20         108289.83               
-19         98050.02                
-18         88322.25                
-17         79106.51                
-16         70402.83                
-15         62211.2                 
-14         54531.66                
-13         47364.23                
-12         40708.93                89         
-11         34565.83                19         
-10         28935.0                 
-9          23816.56                419        
-8          19210.72                
-7          15117.8                 
-6          11538.43                
-5          8473.88                 
-4          5927.04                 
-3          3905.78                 
-2          2439.11                 71         691        
-1          1728.0      CM          29         173        293        977        
2           1728.0      CM          29         173        293        977        
3           2439.11                 
4           3905.78                 
5           5927.04                 587        
6           8473.88                 
7           11538.43                271        
8           15117.8                 19         
9           19210.72                
10          23816.56                
11          28935.0                 107        
12          34565.83                
13          40708.93                89         331        
14          47364.23                151        
15          54531.66                503        
16          62211.2                 
17          70402.83                
18          79106.51                
19          88322.25                
N = 10000 spacing = 8 E = EllipticCurve([0, 0, 0, 7, 9]) for p in prime_range(N): if E.has_good_reduction(p): if E.reduction(p).trace_of_frobenius() == -floor(2 * sqrt(p)): print repr(p) 
       
2069
2069
def printChampion(E, N): list = [] for p in prime_range(N): if E.has_good_reduction(p): if E.reduction(p).trace_of_frobenius() == -floor(2 * sqrt(p)): list.append(p) return list 
       
N = 1000 M = 50 for b in range(1, M): E = EllipticCurve([0, 0, 0, 0, b]) print repr(b).ljust(4), printChampion(E, N) 
       
1    [67, 199, 541, 853]
2    [97, 139, 607, 709, 811, 877, 937]
3    [7, 31, 79, 97, 103, 157, 241, 571, 787, 853]
4    [13, 241, 463, 619, 757]
5    [73, 199, 307, 487, 877]
6    [31, 181]
7    [181, 487, 541, 619]
8    [19, 181, 199, 373, 787, 811]
9    [13, 43, 67, 163, 349, 463, 601, 607, 853, 937]
10   [7, 103, 157, 163, 313, 571, 757]
11   [73, 157, 607, 757]
12   [19, 31, 139, 157, 349, 487, 757, 937]
13   [43, 307, 757]
14   [43, 67, 313, 607, 811]
15   [43, 67, 73, 139, 241, 349, 439, 541, 601, 607, 811]
16   [97, 163, 349, 607, 937]
17   [7, 13, 31, 43, 157, 313, 439, 463, 709, 757, 937]
18   [19, 199, 241, 373, 421, 571, 601]
19   [139, 157, 181, 373, 571, 607, 757]
20   [241, 307, 349, 373, 541, 787]
21   [139]
22   [13, 67, 103, 181, 307, 349, 421, 619, 853]
23   [349, 373, 709]
24   [7, 31, 67, 79, 97, 103, 241, 421, 709]
25   [43, 67, 199, 349, 601, 607, 619, 757, 853]
26   [73, 163, 181, 487]
27   [19, 103, 487, 541, 787, 811, 853]
28   [73, 79, 199, 571]
29   [211, 463]
30   [13, 79, 181, 307, 421, 439, 601, 619, 757]
31   [7, 19, 97, 103, 181, 313, 439, 709, 937]
32   [211, 241, 421, 463, 571, 811]
33   [73, 163, 307, 373, 463, 757]
34   [31, 79, 163, 421, 439, 487, 853]
35   [13, 79, 157, 163, 181, 463, 853]
36   [43, 97, 541, 601, 619, 757]
37   [19, 31, 79, 103, 313, 439, 487, 601, 619, 709]
38   [7, 211, 787, 811]
39   [103, 421, 463, 709, 757, 877, 937]
40   [67, 73, 157, 181, 199, 421, 487, 709, 853]
41   [163, 211, 439, 853]
42   [103, 157, 349, 463, 877]
43   [13, 31, 79, 97, 139, 307, 313, 463, 487, 607, 787]
44   [97, 157, 487]
45   [7, 73, 307, 313, 373]
46   [19, 163, 313, 787]
47   [73, 163, 313, 571, 811]
48   [13, 31, 157, 211, 541]
49   [241, 541, 601, 757, 853, 937]
1    [67, 199, 541, 853]
2    [97, 139, 607, 709, 811, 877, 937]
3    [7, 31, 79, 97, 103, 157, 241, 571, 787, 853]
4    [13, 241, 463, 619, 757]
5    [73, 199, 307, 487, 877]
6    [31, 181]
7    [181, 487, 541, 619]
8    [19, 181, 199, 373, 787, 811]
9    [13, 43, 67, 163, 349, 463, 601, 607, 853, 937]
10   [7, 103, 157, 163, 313, 571, 757]
11   [73, 157, 607, 757]
12   [19, 31, 139, 157, 349, 487, 757, 937]
13   [43, 307, 757]
14   [43, 67, 313, 607, 811]
15   [43, 67, 73, 139, 241, 349, 439, 541, 601, 607, 811]
16   [97, 163, 349, 607, 937]
17   [7, 13, 31, 43, 157, 313, 439, 463, 709, 757, 937]
18   [19, 199, 241, 373, 421, 571, 601]
19   [139, 157, 181, 373, 571, 607, 757]
20   [241, 307, 349, 373, 541, 787]
21   [139]
22   [13, 67, 103, 181, 307, 349, 421, 619, 853]
23   [349, 373, 709]
24   [7, 31, 67, 79, 97, 103, 241, 421, 709]
25   [43, 67, 199, 349, 601, 607, 619, 757, 853]
26   [73, 163, 181, 487]
27   [19, 103, 487, 541, 787, 811, 853]
28   [73, 79, 199, 571]
29   [211, 463]
30   [13, 79, 181, 307, 421, 439, 601, 619, 757]
31   [7, 19, 97, 103, 181, 313, 439, 709, 937]
32   [211, 241, 421, 463, 571, 811]
33   [73, 163, 307, 373, 463, 757]
34   [31, 79, 163, 421, 439, 487, 853]
35   [13, 79, 157, 163, 181, 463, 853]
36   [43, 97, 541, 601, 619, 757]
37   [19, 31, 79, 103, 313, 439, 487, 601, 619, 709]
38   [7, 211, 787, 811]
39   [103, 421, 463, 709, 757, 877, 937]
40   [67, 73, 157, 181, 199, 421, 487, 709, 853]
41   [163, 211, 439, 853]
42   [103, 157, 349, 463, 877]
43   [13, 31, 79, 97, 139, 307, 313, 463, 487, 607, 787]
44   [97, 157, 487]
45   [7, 73, 307, 313, 373]
46   [19, 163, 313, 787]
47   [73, 163, 313, 571, 811]
48   [13, 31, 157, 211, 541]
49   [241, 541, 601, 757, 853, 937]
N = 1000 M = 20 for a in range(-M, M): if a != 0: E = EllipticCurve([0, 0, 0, a, 0]) print repr(a).ljust(4), printChampion(E, N) 
       
-20  [17, 29, 197, 577, 641]
-19  [37, 257, 401, 409, 733]
-18  [109, 197, 457, 977]
-17  [5, 37, 53, 109, 197, 293, 401, 733, 809]
-16  [29, 173, 293, 977]
-15  [101, 229, 577, 809, 857]
-14  [17, 109, 173, 197, 257, 409, 457, 577, 701, 733, 977]
-13  [37, 401, 409, 857]
-12  [5, 17, 197, 229, 257, 457, 677, 733]
-11  [53, 101, 229, 409, 809]
-10  [101, 109, 173, 577]
-9   [53, 641, 857]
-8   [37, 197, 457, 641, 857]
-7   [5, 29, 53, 101, 257, 577, 641]
-6   [37, 53, 109, 173, 257, 401, 809]
-5   [17, 37, 229, 577, 641, 677]
-4   [53, 229, 733, 977]
-3   [17, 101, 257, 457, 701]
-2   [5, 101, 109, 457, 641, 677, 701, 857]
-1   [29, 173, 293, 977]
1    [53, 229, 733, 977]
2    [37, 197, 457, 641, 857]
3    [5, 17, 197, 229, 257, 457, 677, 733]
4    [29, 173, 293, 977]
5    [17, 29, 197, 577, 641]
6    [29, 257, 293, 401, 809]
7    [257, 577, 641, 677]
8    [5, 101, 109, 457, 641, 677, 701, 857]
9    [29, 173, 229, 293, 641, 733, 857]
10   [53, 293, 577, 701, 733]
11   [109, 197, 409, 677, 701, 809]
12   [17, 101, 257, 457, 701]
13   [5, 29, 53, 109, 173, 197, 401, 409, 857]
14   [17, 37, 229, 257, 293, 409, 457, 577, 977]
15   [37, 53, 173, 293, 577, 701, 809, 857]
16   [53, 229, 733, 977]
17   [229, 401, 677, 809]
18   [5, 37, 101, 457, 677, 701, 977]
19   [109, 229, 257, 401, 409, 677]
-20  [17, 29, 197, 577, 641]
-19  [37, 257, 401, 409, 733]
-18  [109, 197, 457, 977]
-17  [5, 37, 53, 109, 197, 293, 401, 733, 809]
-16  [29, 173, 293, 977]
-15  [101, 229, 577, 809, 857]
-14  [17, 109, 173, 197, 257, 409, 457, 577, 701, 733, 977]
-13  [37, 401, 409, 857]
-12  [5, 17, 197, 229, 257, 457, 677, 733]
-11  [53, 101, 229, 409, 809]
-10  [101, 109, 173, 577]
-9   [53, 641, 857]
-8   [37, 197, 457, 641, 857]
-7   [5, 29, 53, 101, 257, 577, 641]
-6   [37, 53, 109, 173, 257, 401, 809]
-5   [17, 37, 229, 577, 641, 677]
-4   [53, 229, 733, 977]
-3   [17, 101, 257, 457, 701]
-2   [5, 101, 109, 457, 641, 677, 701, 857]
-1   [29, 173, 293, 977]
1    [53, 229, 733, 977]
2    [37, 197, 457, 641, 857]
3    [5, 17, 197, 229, 257, 457, 677, 733]
4    [29, 173, 293, 977]
5    [17, 29, 197, 577, 641]
6    [29, 257, 293, 401, 809]
7    [257, 577, 641, 677]
8    [5, 101, 109, 457, 641, 677, 701, 857]
9    [29, 173, 229, 293, 641, 733, 857]
10   [53, 293, 577, 701, 733]
11   [109, 197, 409, 677, 701, 809]
12   [17, 101, 257, 457, 701]
13   [5, 29, 53, 109, 173, 197, 401, 409, 857]
14   [17, 37, 229, 257, 293, 409, 457, 577, 977]
15   [37, 53, 173, 293, 577, 701, 809, 857]
16   [53, 229, 733, 977]
17   [229, 401, 677, 809]
18   [5, 37, 101, 457, 677, 701, 977]
19   [109, 229, 257, 401, 409, 677]
def smallestChampion(E, N): for p in prime_range(N): if E.has_good_reduction(p): if E.reduction(p).trace_of_frobenius() == -floor(2 * sqrt(p)): return p # returns 'None' if no such prime < N 
       
N = 500 spacing = 12 loA = -10 hiA = 10 loB = -10 hiB = 10 for a in range(loA, hiA): for b in range(loB, hiB): if (4*a*a*a + 27*b*b != 0): # not singular E = EllipticCurve([0,0,0,a,b]) s = '(' + repr(a) + ', ' + repr(b) + ')' print s.ljust(spacing), repr(E.j_invariant()).ljust(spacing), smallestChampion(E, N) 
       
WARNING: Output truncated!  
full_output.txt



(-10, -10)   69120/13     None
(-10, -9)    6912000/1813 None
(-10, -8)    216000/71    3
(-10, -7)    6912000/2677 None
(-10, -6)    1728000/757  None
(-10, -5)    276480/133   3
(-10, -4)    432000/223   457
(-10, -3)    6912000/3757 19
(-10, -2)    1728000/973  3
(-10, -1)    6912000/3973 53
(-10, 0)     1728         101
(-10, 1)     6912000/3973 3
(-10, 2)     1728000/973  None
(-10, 3)     6912000/3757 11
(-10, 4)     432000/223   3
(-10, 5)     276480/133   127
(-10, 6)     1728000/757  179
(-10, 7)     6912000/2677 3
(-10, 8)     216000/71    None
(-10, 9)     6912000/1813 None
(-9, -10)    23328        41
(-9, -9)     6912         None
(-9, -8)     46656/11     107
(-9, -7)     186624/59    None
(-9, -6)     2592         None
(-9, -5)     186624/83    None
(-9, -4)     46656/23     None
(-9, -3)     20736/11     None
(-9, -2)     23328/13     None
(-9, -1)     186624/107   None
(-9, 0)      1728         53
(-9, 1)      186624/107   None
(-9, 2)      23328/13     None
(-9, 3)      20736/11     None
(-9, 4)      46656/23     None
(-9, 5)      186624/83    131
(-9, 6)      2592         None
(-9, 7)      186624/59    None
(-9, 8)      46656/11     None
(-9, 9)      6912         None
(-8, -10)    -884736/163  11
(-8, -9)     -3538944/139 None
(-8, -8)     55296/5      None
(-8, -7)     3538944/725  None
(-8, -6)     884736/269   None
(-8, -5)     3538944/1373 None
(-8, -4)     221184/101   None
(-8, -3)     3538944/1805 103
(-8, -2)     884736/485   19
(-8, -1)     3538944/2021 41
(-8, 0)      1728         37
(-8, 1)      3538944/2021 11
(-8, 2)      884736/485   None
(-8, 3)      3538944/1805 None
(-8, 4)      221184/101   None
(-8, 5)      3538944/1373 None
(-8, 6)      884736/269   None
(-8, 7)      3538944/725  None
(-8, 8)      55296/5      None

...

(7, -10)     296352/509   None
(7, -9)      2370816/3559 None
(7, -8)      592704/775   None
(7, -7)      48384/55     53
(7, -6)      296352/293   None
(7, -5)      2370816/2047 None
(7, -4)      592704/451   7
(7, -3)      2370816/1615 None
(7, -2)      296352/185   19
(7, -1)      2370816/1399 None
(7, 0)       1728         257
(7, 1)       2370816/1399 419
(7, 2)       296352/185   None
(7, 3)       2370816/1615 7
(7, 4)       592704/451   None
(7, 5)       2370816/2047 None
(7, 6)       296352/293   None
(7, 7)       48384/55     53
(7, 8)       592704/775   None
(7, 9)       2370816/3559 None
(8, -10)     884736/1187  5
(8, -9)      3538944/4235 41
(8, -8)      55296/59     3
(8, -7)      3538944/3371 None
(8, -6)      884736/755   23
(8, -5)      3538944/2723 3
(8, -4)      221184/155   89
(8, -3)      3538944/2291 271
(8, -2)      884736/539   3
(8, -1)      3538944/2075 449
(8, 0)       1728         5
(8, 1)       3538944/2075 3
(8, 2)       884736/539   29
(8, 3)       3538944/2291 None
(8, 4)       221184/155   3
(8, 5)       3538944/2723 5
(8, 6)       884736/755   None
(8, 7)       3538944/3371 3
(8, 8)       55296/59     None
(8, 9)       3538944/4235 41
(9, -10)     11664/13     None
(9, -9)      6912/7       None
(9, -8)      46656/43     41
(9, -7)      186624/157   11
(9, -6)      1296         53
(9, -5)      186624/133   None
(9, -4)      46656/31     79
(9, -3)      20736/13     19
(9, -2)      11664/7      23
(9, -1)      186624/109   None
(9, 0)       1728         29
(9, 1)       186624/109   151
(9, 2)       11664/7      None
(9, 3)       20736/13     None
(9, 4)       46656/31     11
(9, 5)       186624/133   None
(9, 6)       1296         53
(9, 7)       186624/157   None
(9, 8)       46656/43     41
(9, 9)       6912/7       None
WARNING: Output truncated!  
full_output.txt



(-10, -10)   69120/13     None
(-10, -9)    6912000/1813 None
(-10, -8)    216000/71    3
(-10, -7)    6912000/2677 None
(-10, -6)    1728000/757  None
(-10, -5)    276480/133   3
(-10, -4)    432000/223   457
(-10, -3)    6912000/3757 19
(-10, -2)    1728000/973  3
(-10, -1)    6912000/3973 53
(-10, 0)     1728         101
(-10, 1)     6912000/3973 3
(-10, 2)     1728000/973  None
(-10, 3)     6912000/3757 11
(-10, 4)     432000/223   3
(-10, 5)     276480/133   127
(-10, 6)     1728000/757  179
(-10, 7)     6912000/2677 3
(-10, 8)     216000/71    None
(-10, 9)     6912000/1813 None
(-9, -10)    23328        41
(-9, -9)     6912         None
(-9, -8)     46656/11     107
(-9, -7)     186624/59    None
(-9, -6)     2592         None
(-9, -5)     186624/83    None
(-9, -4)     46656/23     None
(-9, -3)     20736/11     None
(-9, -2)     23328/13     None
(-9, -1)     186624/107   None
(-9, 0)      1728         53
(-9, 1)      186624/107   None
(-9, 2)      23328/13     None
(-9, 3)      20736/11     None
(-9, 4)      46656/23     None
(-9, 5)      186624/83    131
(-9, 6)      2592         None
(-9, 7)      186624/59    None
(-9, 8)      46656/11     None
(-9, 9)      6912         None
(-8, -10)    -884736/163  11
(-8, -9)     -3538944/139 None
(-8, -8)     55296/5      None
(-8, -7)     3538944/725  None
(-8, -6)     884736/269   None
(-8, -5)     3538944/1373 None
(-8, -4)     221184/101   None
(-8, -3)     3538944/1805 103
(-8, -2)     884736/485   19
(-8, -1)     3538944/2021 41
(-8, 0)      1728         37
(-8, 1)      3538944/2021 11
(-8, 2)      884736/485   None
(-8, 3)      3538944/1805 None
(-8, 4)      221184/101   None
(-8, 5)      3538944/1373 None
(-8, 6)      884736/269   None
(-8, 7)      3538944/725  None
(-8, 8)      55296/5      None

...

(7, -10)     296352/509   None
(7, -9)      2370816/3559 None
(7, -8)      592704/775   None
(7, -7)      48384/55     53
(7, -6)      296352/293   None
(7, -5)      2370816/2047 None
(7, -4)      592704/451   7
(7, -3)      2370816/1615 None
(7, -2)      296352/185   19
(7, -1)      2370816/1399 None
(7, 0)       1728         257
(7, 1)       2370816/1399 419
(7, 2)       296352/185   None
(7, 3)       2370816/1615 7
(7, 4)       592704/451   None
(7, 5)       2370816/2047 None
(7, 6)       296352/293   None
(7, 7)       48384/55     53
(7, 8)       592704/775   None
(7, 9)       2370816/3559 None
(8, -10)     884736/1187  5
(8, -9)      3538944/4235 41
(8, -8)      55296/59     3
(8, -7)      3538944/3371 None
(8, -6)      884736/755   23
(8, -5)      3538944/2723 3
(8, -4)      221184/155   89
(8, -3)      3538944/2291 271
(8, -2)      884736/539   3
(8, -1)      3538944/2075 449
(8, 0)       1728         5
(8, 1)       3538944/2075 3
(8, 2)       884736/539   29
(8, 3)       3538944/2291 None
(8, 4)       221184/155   3
(8, 5)       3538944/2723 5
(8, 6)       884736/755   None
(8, 7)       3538944/3371 3
(8, 8)       55296/59     None
(8, 9)       3538944/4235 41
(9, -10)     11664/13     None
(9, -9)      6912/7       None
(9, -8)      46656/43     41
(9, -7)      186624/157   11
(9, -6)      1296         53
(9, -5)      186624/133   None
(9, -4)      46656/31     79
(9, -3)      20736/13     19
(9, -2)      11664/7      23
(9, -1)      186624/109   None
(9, 0)       1728         29
(9, 1)       186624/109   151
(9, 2)       11664/7      None
(9, 3)       20736/13     None
(9, 4)       46656/31     11
(9, 5)       186624/133   None
(9, 6)       1296         53
(9, 7)       186624/157   None
(9, 8)       46656/43     41
(9, 9)       6912/7       None
N = 1000 M = 100 all = [] for b in range(-M, M): if b != 0: p = smallestChampion(EllipticCurve([0,0,0,0,b]), N) if p != None: all.append((b, p)) allPoints = point2d(all) show(allPoints) 
       

                                
                            

                                
N = 1000 M = 100 all = [] for a in range(-M, M): if a != 0: p = smallestChampion(EllipticCurve([0,0,0,a,0]), N) if p != None: all.append((a, p)) allPoints = point2d(all) show(allPoints) 
       

                                
                            

                                
def isChampion(E, p): return E.has_good_reduction(p) and E.reduction(p).trace_of_frobenius() == -floor(2 * sqrt(p)) def smallestChampion(E, N): for p in prime_range(N): if isChampion(E, p): return p # returns 'None' if no such prime < N N = 700 M = 200 count = [] # grow list to length N for i in range(N): count.append(0) for b in range(-M, M): if b != 0: # curve is nonsingular E = EllipticCurve([0, b]) p = smallestChampion(E, N) if p != None: count[p] += 1 all = [] for p in prime_range(N): all.append((p, count[p])) allPoints = point2d(all) show(allPoints) 
       

                                
                            

                                
N = 350 M = 2000 count = [] # grow list to length N for i in range(N): count.append(0) for b in range(-M, M): if b != 0: # curve is nonsingular E = EllipticCurve([0, b]) p = smallestChampion(E, N) if p != None: count[p] += 1 all = [] for p in prime_range(N): all.append((p, count[p])) allPoints = point2d(all) show(allPoints) 
       

                                
                            

                                
for i in range(len(all)): print all[i] 
       
(2, 0)
(3, 0)
(5, 0)
(7, 572)
(11, 0)
(13, 528)
(17, 0)
(19, 457)
(23, 0)
(29, 0)
(31, 391)
(37, 0)
(41, 0)
(43, 336)
(47, 0)
(53, 0)
(59, 0)
(61, 0)
(67, 274)
(71, 0)
(73, 248)
(79, 207)
(83, 0)
(89, 0)
(97, 172)
(101, 0)
(103, 138)
(107, 0)
(109, 0)
(113, 0)
(127, 0)
(131, 0)
(137, 0)
(139, 108)
(149, 0)
(151, 0)
(157, 92)
(163, 64)
(167, 0)
(173, 0)
(179, 0)
(181, 74)
(191, 0)
(193, 0)
(197, 0)
(199, 45)
(211, 47)
(223, 0)
(227, 0)
(229, 0)
(233, 0)
(239, 0)
(241, 35)
(251, 0)
(257, 0)
(263, 0)
(269, 0)
(271, 0)
(277, 0)
(281, 0)
(283, 0)
(293, 0)
(307, 41)
(311, 0)
(313, 29)
(317, 0)
(331, 0)
(337, 0)
(347, 0)
(349, 26)
(2, 0)
(3, 0)
(5, 0)
(7, 572)
(11, 0)
(13, 528)
(17, 0)
(19, 457)
(23, 0)
(29, 0)
(31, 391)
(37, 0)
(41, 0)
(43, 336)
(47, 0)
(53, 0)
(59, 0)
(61, 0)
(67, 274)
(71, 0)
(73, 248)
(79, 207)
(83, 0)
(89, 0)
(97, 172)
(101, 0)
(103, 138)
(107, 0)
(109, 0)
(113, 0)
(127, 0)
(131, 0)
(137, 0)
(139, 108)
(149, 0)
(151, 0)
(157, 92)
(163, 64)
(167, 0)
(173, 0)
(179, 0)
(181, 74)
(191, 0)
(193, 0)
(197, 0)
(199, 45)
(211, 47)
(223, 0)
(227, 0)
(229, 0)
(233, 0)
(239, 0)
(241, 35)
(251, 0)
(257, 0)
(263, 0)
(269, 0)
(271, 0)
(277, 0)
(281, 0)
(283, 0)
(293, 0)
(307, 41)
(311, 0)
(313, 29)
(317, 0)
(331, 0)
(337, 0)
(347, 0)
(349, 26)
def isChampion(E, p): return E.has_good_reduction(p) and E.reduction(p).trace_of_frobenius() == -floor(2 * sqrt(p)) N = 700 M = 100 all = [] for b in range(1, M): E = EllipticCurve([0, b]) for p in prime_range(1, N): if p % 6 == 1 and isChampion(E, p): all.append((b, p)) allPoints = point2d(all) show(allPoints)