sort_primes.sf 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. #!/usr/bin/ruby
  2. var arr = [
  3. 5
  4. 3
  5. 2
  6. 2
  7. 411
  8. 195
  9. 2
  10. 392
  11. 141
  12. 105
  13. 1161
  14. 909
  15. 69
  16. 3243
  17. 171
  18. 370
  19. 1659
  20. 165
  21. 26289
  22. 1065
  23. 8541
  24. 19593
  25. 43521
  26. 1323
  27. 84651
  28. 25767
  29. 25641
  30. 7029
  31. 63009
  32. 693
  33. 231
  34. 957
  35. 2601
  36. 7137
  37. 368265
  38. 14769
  39. 8169
  40. 13071
  41. 23679
  42. 45
  43. 13875
  44. 6693
  45. 136611
  46. 34869
  47. 55725
  48. 4887
  49. 231
  50. 1935
  51. 730071
  52. 10305
  53. 165681
  54. 66429
  55. 752325
  56. 6201
  57. 13311
  58. 28713
  59. 8535
  60. 22683
  61. 77091
  62. 35301
  63. 36189
  64. 411069
  65. 294429
  66. 36614
  67. 442815
  68. 51
  69. 258345
  70. 18933
  71. 304215
  72. 148743
  73. 2128761
  74. 159045
  75. 501501
  76. 1109799
  77. 33615
  78. 41955
  79. 195945
  80. 585045
  81. 750981
  82. 229299
  83. 805335
  84. 152163
  85. 1002849
  86. 31629
  87. 1140321
  88. 90393
  89. 123801
  90. 520023
  91. 6201
  92. 212877
  93. 1503351
  94. 255129
  95. 1761465
  96. 739269
  97. 285411
  98. 15069
  99. 285039
  100. 1030623
  101. 366729
  102. 96867
  103. 156225
  104. 747
  105. ]
  106. var t = arr.kv.sort_by {|v|
  107. v[1]**(v[0]+1) -> next_prime
  108. }
  109. for a,b in (t) {
  110. var z = (b**(a+1))
  111. var p = next_prime(z)
  112. var d = (p - z)
  113. printf("%15s | %15s\n", "#{b}^#{a+1} + #{d}", "#{b}^#{a+1} - #{4-d}")
  114. assert(is_prime(b**(a+1) + d))
  115. assert(is_prime(b**(a+1) - (4-d)))
  116. }
  117. __END__
  118. 5^1 + 2 | 5^1 - 2
  119. 3^2 + 2 | 3^2 - 2
  120. 2^3 + 3 | 2^3 - 1
  121. 2^4 + 1 | 2^4 - 3
  122. 2^7 + 3 | 2^7 - 1
  123. 411^5 + 2 | 411^5 - 2
  124. 195^6 + 2 | 195^6 - 2
  125. 141^9 + 2 | 141^9 - 2
  126. 105^10 + 2 | 105^10 - 2
  127. 392^8 + 1 | 392^8 - 3
  128. 69^13 + 2 | 69^13 - 2
  129. 171^15 + 2 | 171^15 - 2
  130. 1161^11 + 2 | 1161^11 - 2
  131. 909^12 + 2 | 909^12 - 2
  132. 165^18 + 2 | 165^18 - 2
  133. 370^16 + 1 | 370^16 - 3
  134. 3243^14 + 2 | 3243^14 - 2
  135. 1659^17 + 2 | 1659^17 - 2
  136. 1065^20 + 2 | 1065^20 - 2
  137. 45^40 + 2 | 45^40 - 2
  138. 231^31 + 2 | 231^31 - 2
  139. 1323^24 + 2 | 1323^24 - 2
  140. 8541^21 + 2 | 8541^21 - 2
  141. 26289^19 + 2 | 26289^19 - 2
  142. 693^30 + 2 | 693^30 - 2
  143. 19593^22 + 2 | 19593^22 - 2
  144. 957^32 + 2 | 957^32 - 2
  145. 43521^23 + 2 | 43521^23 - 2
  146. 7029^28 + 2 | 7029^28 - 2
  147. 231^47 + 2 | 231^47 - 2
  148. 2601^33 + 2 | 2601^33 - 2
  149. 51^66 + 2 | 51^66 - 2
  150. 25767^26 + 2 | 25767^26 - 2
  151. 25641^27 + 2 | 25641^27 - 2
  152. 84651^25 + 2 | 84651^25 - 2
  153. 7137^34 + 2 | 7137^34 - 2
  154. 63009^29 + 2 | 63009^29 - 2
  155. 8169^37 + 2 | 8169^37 - 2
  156. 14769^36 + 2 | 14769^36 - 2
  157. 13071^38 + 2 | 13071^38 - 2
  158. 1935^48 + 2 | 1935^48 - 2
  159. 6693^42 + 2 | 6693^42 - 2
  160. 4887^46 + 2 | 4887^46 - 2
  161. 13875^41 + 2 | 13875^41 - 2
  162. 23679^39 + 2 | 23679^39 - 2
  163. 368265^35 + 2 | 368265^35 - 2
  164. 34869^44 + 2 | 34869^44 - 2
  165. 10305^50 + 2 | 10305^50 - 2
  166. 6201^54 + 2 | 6201^54 - 2
  167. 55725^45 + 2 | 55725^45 - 2
  168. 136611^43 + 2 | 136611^43 - 2
  169. 8535^57 + 2 | 8535^57 - 2
  170. 13311^55 + 2 | 13311^55 - 2
  171. 28713^56 + 2 | 28713^56 - 2
  172. 66429^52 + 2 | 66429^52 - 2
  173. 22683^58 + 2 | 22683^58 - 2
  174. 165681^51 + 2 | 165681^51 - 2
  175. 35301^60 + 2 | 35301^60 - 2
  176. 36189^61 + 2 | 36189^61 - 2
  177. 730071^49 + 2 | 730071^49 - 2
  178. 77091^59 + 2 | 77091^59 - 2
  179. 18933^68 + 2 | 18933^68 - 2
  180. 36614^64 + 1 | 36614^64 - 3
  181. 747^102 + 2 | 747^102 - 2
  182. 752325^53 + 2 | 752325^53 - 2
  183. 6201^89 + 2 | 6201^89 - 2
  184. 33615^75 + 2 | 33615^75 - 2
  185. 294429^63 + 2 | 294429^63 - 2
  186. 411069^62 + 2 | 411069^62 - 2
  187. 41955^76 + 2 | 41955^76 - 2
  188. 148743^70 + 2 | 148743^70 - 2
  189. 258345^67 + 2 | 258345^67 - 2
  190. 442815^65 + 2 | 442815^65 - 2
  191. 159045^72 + 2 | 159045^72 - 2
  192. 31629^84 + 2 | 31629^84 - 2
  193. 304215^69 + 2 | 304215^69 - 2
  194. 15069^96 + 2 | 15069^96 - 2
  195. 195945^77 + 2 | 195945^77 - 2
  196. 501501^73 + 2 | 501501^73 - 2
  197. 152163^82 + 2 | 152163^82 - 2
  198. 90393^86 + 2 | 90393^86 - 2
  199. 229299^80 + 2 | 229299^80 - 2
  200. 123801^87 + 2 | 123801^87 - 2
  201. 1109799^74 + 2 | 1109799^74 - 2
  202. 2128761^71 + 2 | 2128761^71 - 2
  203. 585045^78 + 2 | 585045^78 - 2
  204. 750981^79 + 2 | 750981^79 - 2
  205. 805335^81 + 2 | 805335^81 - 2
  206. 212877^90 + 2 | 212877^90 - 2
  207. 255129^92 + 2 | 255129^92 - 2
  208. 1002849^83 + 2 | 1002849^83 - 2
  209. 96867^100 + 2 | 96867^100 - 2
  210. 520023^88 + 2 | 520023^88 - 2
  211. 1140321^85 + 2 | 1140321^85 - 2
  212. 285411^95 + 2 | 285411^95 - 2
  213. 156225^101 + 2 | 156225^101 - 2
  214. 285039^97 + 2 | 285039^97 - 2
  215. 366729^99 + 2 | 366729^99 - 2
  216. 739269^94 + 2 | 739269^94 - 2
  217. 1503351^91 + 2 | 1503351^91 - 2
  218. 1761465^93 + 2 | 1761465^93 - 2
  219. 1030623^98 + 2 | 1030623^98 - 2