{{{id=33| # spirale di Ulam /// }}} {{{id=34| for i in range(10): floor(i/2+1) #i % 4 /// 1 1 2 2 3 3 4 4 5 5 }}} {{{id=17| u = [0, 0] k = 1 PU = Graphics() for i in range(300): a = floor(i/2 + 1) b = i % 4 for j in range(a): if b == 0: u = [u[0]+1, u[1]] elif b == 1: u = [u[0], u[1]+1] elif b == 2: u = [u[0]-1, u[1]] elif b == 3: u = [u[0], u[1]-1] k += 1 if is_prime(k): PU += point2d(u, size=2) /// }}} {{{id=38| show(PU, axes = False, figsize = [6, 6]) /// }}} {{{id=39| ##modo alternativo, usando list_plot: molto piu' veloce /// }}} {{{id=36| u = [0, 0] k = 1 PU = [] for i in range(500): a = floor(i/2 + 1) b = i % 4 for j in range(a): if b == 0: u = [u[0]+1, u[1]] elif b == 1: u = [u[0], u[1]+1] elif b == 2: u = [u[0]-1, u[1]] elif b == 3: u = [u[0], u[1]-1] k += 1 if is_prime(k): PU.append(tuple(u)) /// }}} {{{id=22| list_plot(PU, size=1, axes=False, figsize = [8, 8]) /// }}} {{{id=21| ### ### teorema fondamentale numeri primi /// }}} {{{id=23| def f(n): return n/prime_pi(n) /// }}} {{{id=25| gr1 = point([(i, f(i)) for i in range(2, 3000)], size = 1, figsize=[12, 6]) gr2 = plot(log(x)-1, (x, 1, 3000), color=hue(0.1)) #show(gr1 + gr2) /// }}} {{{id=27| ### primi trigemellari ### sia d un numero (pari) quanti sono le terne di primi (p1, p2, p3) della forma (p-d, p, p+d)? /// }}} {{{id=28| d = 18 triG = [] i = 1 while i < 10000: a = nth_prime(i) if is_prime(a-d) and is_prime(a+d): triG.append(a) i += 1 len(triG) /// 571 }}} {{{id=29| triG /// [11, 13, 17, 23, 37, 47, 53, 67, 73, 103, 107, 157, 173, 233, 257, 263, 277, 353, 373] }}} {{{id=48| /// }}} {{{id=47| S = filter(lambda u: u[0]==u[1], PU1) /// }}} {{{id=46| [S[i] for i in range(40)] /// [(1, 1, 3), (-1, -1, 7), (-2, -2, 29), (-2, -2, 31), (4, 4, 43), (-3, -3, 59), (-3, -3, 61), (-4, -4, 101), (-4, -4, 103), (-4, -4, 107), (-4, -4, 109), (-5, -5, 157), (-5, -5, 163), (-5, -5, 167), (-6, -6, 227), (-6, -6, 229), (-6, -6, 233), (-6, -6, 239), (-6, -6, 241), (-7, -7, 307), (-7, -7, 311), (-7, -7, 313), (-7, -7, 317), (-8, -8, 401), (-8, -8, 409), (-8, -8, 419), (-8, -8, 421), (13, 13, 463), (-9, -9, 509), (-9, -9, 521), (-9, -9, 523), (-10, -10, 631), (-10, -10, 641), (-10, -10, 643), (-10, -10, 647), (-11, -11, 757), (-11, -11, 761), (-11, -11, 769), (-11, -11, 773), (-12, -12, 907)] }}} {{{id=45| ## seleziono quelli che hanno coordinate negative S1 = filter(lambda u: u[0] < 0, S) [S1[i] for i in range(40)] /// [(-1, -1, 7), (-2, -2, 29), (-2, -2, 31), (-3, -3, 59), (-3, -3, 61), (-4, -4, 101), (-4, -4, 103), (-4, -4, 107), (-4, -4, 109), (-5, -5, 157), (-5, -5, 163), (-5, -5, 167), (-6, -6, 227), (-6, -6, 229), (-6, -6, 233), (-6, -6, 239), (-6, -6, 241), (-7, -7, 307), (-7, -7, 311), (-7, -7, 313), (-7, -7, 317), (-8, -8, 401), (-8, -8, 409), (-8, -8, 419), (-8, -8, 421), (-9, -9, 509), (-9, -9, 521), (-9, -9, 523), (-10, -10, 631), (-10, -10, 641), (-10, -10, 643), (-10, -10, 647), (-11, -11, 757), (-11, -11, 761), (-11, -11, 769), (-11, -11, 773), (-12, -12, 907), (-12, -12, 911), (-12, -12, 919), (-12, -12, 929)] }}} {{{id=49| ## isolo i numeri primi, escludendo le coordinate Pr = map(lambda u: u[2], S1) [Pr[i] for i in range(40)] /// [7, 29, 31, 59, 61, 101, 103, 107, 109, 157, 163, 167, 227, 229, 233, 239, 241, 307, 311, 313, 317, 401, 409, 419, 421, 509, 521, 523, 631, 641, 643, 647, 757, 761, 769, 773, 907, 911, 919, 929] }}} {{{id=50| ## li trasformo in punti disegnabili PPr = [(i, Pr[i]) for i in range(len(Pr))] /// }}} {{{id=51| list_plot(PPr, size=1) + line([[100,0], [1300, 62900]], color="red") /// }}} {{{id=52| [Pr[i] for i in range(50)] /// [7, 29, 31, 59, 61, 101, 103, 107, 109, 157, 163, 167, 227, 229, 233, 239, 241, 307, 311, 313, 317, 401, 409, 419, 421, 509, 521, 523, 631, 641, 643, 647, 757, 761, 769, 773, 907, 911, 919, 929, 1061, 1063, 1069, 1087, 1229, 1231, 1237, 1249, 1259, 1409] }}} {{{id=53| [Pr[i+1]-Pr[i] for i in range(100)] /// [22, 2, 28, 2, 40, 2, 4, 2, 48, 6, 4, 60, 2, 4, 6, 2, 66, 4, 2, 4, 84, 8, 10, 2, 88, 12, 2, 108, 10, 2, 4, 110, 4, 8, 4, 134, 4, 8, 10, 132, 2, 6, 18, 142, 2, 6, 12, 10, 150, 14, 4, 2, 4, 6, 162, 6, 2, 4, 6, 2, 6, 10, 174, 12, 8, 16, 180, 2, 10, 14, 10, 6, 198, 2, 4, 8, 6, 6, 4, 206, 18, 10, 8, 4, 6, 2, 216, 10, 12, 2, 6, 4, 2, 234, 4, 8, 12, 6, 12, 228] }}} {{{id=54| u = [0, 0] k = 1 PU = [] PU1 = [] for i in range(500): a = floor(i/3 + 1) b = (i) % 5 for j in range(a): if b == 0: u = [u[0]+1, u[1]] elif b == 1: u = [u[0], u[1]+1] elif b == 2: u = [u[0]-1, u[1]] elif b == 3: u = [u[0], u[1]-1] k += 1 if is_prime(k) or True: PU.append(tuple(u)) PU1.append((u[0], u[1], k)) /// }}} {{{id=55| #list_plot([PU[i] for i in range(100, 200)], size=1, axes=False, figsize = [8, 8]) list_plot(PU, size=1, axes=False, figsize = [8, 8]) /// }}} {{{id=56| /// }}}