SHARE
TWEET

Untitled

a guest Dec 11th, 2019 104 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #Week 10 projects:
  2. #Patterns in primes
  3.  
  4. import matplotlib.pyplot as plt
  5.  
  6. n = 100
  7. #1)
  8. #a)
  9. def primelist(n):
  10.     prime_list = list(range(2,n+1))
  11.     for i in prime_list:
  12.         j=2
  13.         while i*j <= prime_list[-1]:
  14.             if i*j in prime_list:
  15.                 prime_list.remove(i*j)
  16.             j = j+1
  17.     return prime_list
  18.  
  19. #primes = primelist(N)
  20.  
  21. #b)
  22. def prime_test(n):
  23.    for i in range(2, n):
  24.       if n % i == 0:
  25.          return False
  26.    return True
  27.  
  28. #c)
  29. def twinprimes(n):
  30.     twinprimes_list = []
  31.     for i in range(2,n):
  32.         j = i+2
  33.         if(prime_test(i) and prime_test(j)):
  34.             twinprimes_list.append((i,j))
  35.     return twinprimes_list
  36.    
  37. def twinprimes_sing(n):
  38.     twinprimes_sing_list = []
  39.     for i in range(2,n):
  40.         j = i+2
  41.         if(prime_test(i) and prime_test(j)):
  42.             twinprimes_sing_list.append(j)
  43.     return twinprimes_sing_list
  44.        
  45. #d)    
  46. def sgprimes(n):
  47.     sgprimes_list = []
  48.     for i in range(2,n):
  49.         j = 2*i+1
  50.         if(prime_test(i) and prime_test(j)):
  51.             sgprimes_list.append(i)
  52.     return sgprimes_list
  53.  
  54. #e)
  55. #Non Logarithmic Plots:
  56. a = 20000
  57. fig1, ax1 = plt.subplots()
  58.  
  59. x = primelist(a)
  60. y = [i+1 for i in range(len(primelist(a)))]
  61. ax1.plot(x,y, '-b', label = 'Primes')
  62. ax1.legend(loc = 'upper left')
  63.  
  64. x = twinprimes_sing(a)
  65. y = [i+1 for i in range(len(twinprimes_sing(a)))]
  66. ax1.plot(x,y, '-r', label = 'Twin Primes')
  67. ax1.legend(loc = 'upper left')
  68.  
  69. x = sgprimes(a)
  70. y = [i+1 for i in range(len(sgprimes(a)))]
  71. ax1.plot(x,y, '-', color = 'orange', label = 'Sophie Germain Primes')
  72. ax1.legend(loc = 'upper left')
  73.  
  74. plt.xlabel('n')
  75. plt.ylabel('Respective Prime Counts')
  76. plt.title('Prime/Twin Prime/SG Prime Counts')
  77. fig1.show()
  78.  
  79.  
  80. #Logarithmic Plots:
  81. fig2, ax2 = plt.subplots()
  82.  
  83. x = primelist(a)
  84. y = [i+1 for i in range(len(primelist(a)))]
  85. ax2.loglog(x,y, '-b', label = 'Primes')
  86. ax2.legend(loc = 'upper left')
  87.  
  88. x = twinprimes_sing(a)
  89. y = [i+1 for i in range(len(twinprimes_sing(a)))]
  90. ax2.loglog(x,y, '-r', label = 'Twin Primes')
  91. ax2.legend(loc = 'upper left')
  92.  
  93. x = sgprimes(a)
  94. y = [i+1 for i in range(len(sgprimes(a)))]
  95. ax2.loglog(x,y, '-', color = 'orange', label = 'Sophie Germain Primes')
  96. ax2.legend(loc = 'upper left')
  97.  
  98. plt.xlabel('log(n)')
  99. plt.ylabel('Respective Prime Counts')
  100. plt.title('Prime/Twin Prime/SG Prime Counts (Logarithmic)')
  101. fig2.show()
  102.  
  103.  
  104. #2
  105. #a)
  106. def sexyprimes(n):
  107.     sexyprimes_list = []
  108.     for i in range(2,n):
  109.         j = i+6
  110.         if(prime_test(i) and prime_test(j)):
  111.             sexyprimes_list.append((i,j))
  112.     return sexyprimes_list
  113.  
  114. #b)
  115. def tripletprimes(n):
  116.     tripletprimes_list = []
  117.     for i in range(2,n):
  118.         j,k,l = i+2,i+4,i+6
  119.         if(prime_test(i) and prime_test(j) and prime_test(l)):
  120.             tripletprimes_list.append((i,j,l))
  121.         if(prime_test(i) and prime_test(k) and prime_test(l)):
  122.             tripletprimes_list.append((i,k,l))
  123.     return tripletprimes_list
  124.  
  125. #c)
  126. def tripletprimes_count(n): return len(tripletprimes(n))
  127. def sexyprimes_count(n): return len(sexyprimes(n))
  128. def twinprimes_count(n): return len(twinprimes(n))
  129.  
  130. def S(n):
  131.     if sexyprimes_count(n) != 0:
  132.         return tripletprimes_count(n)/sexyprimes_count(n)
  133. def T(n):
  134.     if twinprimes_count(n) != 0:
  135.         return tripletprimes_count(n)/twinprimes_count(n)
  136.    
  137. def S_output(n):
  138.     listy = []
  139.     for i in range(1,n):
  140.         x = S(i)
  141.         if S(i) != S(i-1):
  142.             listy.append(x)
  143.     return listy
  144.  
  145. def S_list(n):
  146.     listx = []
  147.     for i in range(1,n):
  148.         if S(i) != S(i-1):
  149.             listx.append(i)
  150.     return listx
  151.  
  152. def T_output(n):
  153.     listy = []
  154.     for i in range(1,n):
  155.         x = T(i)
  156.         if T(i) != T(i-1):
  157.             listy.append(x)
  158.     return listy
  159.  
  160. def T_list(n):
  161.     listx = []
  162.     for i in range(1,n):
  163.         if T(i) != T(i-1):
  164.             listx.append(i)
  165.     return listx
  166. '''
  167. fig3, ax3 = plt.subplots()
  168. fig4, ax4 = plt.subplots()
  169.  
  170. S_T_value
  171.  
  172. x_2 = T_list(200)
  173. y_2 = T_output(200)
  174. plot_c = ax3.plot(x_2,y_2,label = 'T(n) against n.')
  175.  
  176. x_1 = S_list(500)
  177. y_1 = S_output(500)
  178. plot_d = ax4.plot(x_1,y_1,label = 'S(n) against n.')
  179.  
  180. fig3.show()
  181. fig4.show()
  182. '''
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top