Guest User

Untitled

a guest
May 25th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.01 KB | None | 0 0
  1. sage: prod( primes(15) )
  2. 30030
  3. sage: _.factor()
  4. 2 * 3 * 5 * 7 * 11 * 13
  5.  
  6. N = 16
  7. R = [1..N]
  8. bad_n_values = []
  9. matches = {} # dictionary n -> j such that n+j shares no prime factors
  10.  
  11. for n in [0..prod(primes(N))-1]:
  12.  
  13. matches[n] = None # so far
  14. for j in R:
  15. k_match_was_found = False # so far
  16. for k in R:
  17. if k == j: continue
  18. if gcd(n+j, n+k) > 1:
  19. k_match_was_found = True
  20. break # the k loop
  21. if not k_match_was_found:
  22. matches[n] = j
  23. break # the j loop
  24. # if this point is reached, then matches[n] remains None
  25.  
  26. if None in matches.values():
  27. print "NO MATCHES for the following values of n:"
  28. print [ j for j in matches.keys() if matches[j] == None ]
  29.  
  30. else:
  31. print "OK"
  32.  
  33. OK
  34.  
  35. sage: for n in [1..20]: print n, '->', n+matches[n]
  36. 1 -> 11
  37. 2 -> 11
  38. 3 -> 11
  39. 4 -> 11
  40. 5 -> 11
  41. 6 -> 13
  42. 7 -> 13
  43. 8 -> 13
  44. 9 -> 13
  45. 10 -> 17
  46. 11 -> 17
  47. 12 -> 17
  48. 13 -> 17
  49. 14 -> 17
  50. 15 -> 17
  51. 16 -> 17
  52. 17 -> 19
  53. 18 -> 19
  54. 19 -> 23
  55. 20 -> 23
  56.  
  57. P = prod(list(primes(15))) # 30030
  58. L = [ n for n in [17..30030.next_prime()] if gcd(n, P) == 1 ]
  59.  
  60. gaps_list = [ L[k+1] - L[k] for k in range(len(L)-1) ]
  61. maximal_gap = max( gaps_list )
  62. print "Maximal gap is", maximal_gap
  63. print "Following intervals have a gap >16:"
  64. for k in range(len(L)-1):
  65. if L[k+1] - L[k] > 16:
  66. print L[k], L[k+1], ':: gap =', L[k+1] - L[k]
  67.  
  68. Maximal gap is 22
  69. Following intervals have a gap >16:
  70. 2183 2201 :: gap = 18
  71. 5749 5767 :: gap = 18
  72. 9109 9127 :: gap = 18
  73. 9439 9461 :: gap = 22
  74. 13339 13357 :: gap = 18
  75. 16673 16691 :: gap = 18
  76. 20569 20591 :: gap = 22
  77. 20903 20921 :: gap = 18
  78. 24263 24281 :: gap = 18
  79. 27829 27847 :: gap = 18
  80.  
  81. for k in range(len(L)-1):
  82. if L[k+1] - L[k] > 16:
  83. print "INTERVAL (", L[k], ',', L[k+1], ' ) :: gap =', L[k+1] - L[k]
  84. for n in range( L[k]+1, L[k+1]-16 ):
  85. solution = n + matches[n]
  86. print "tn = %s -> %s = %s" % ( n, solution, solution.factor() )
  87.  
  88. INTERVAL ( 2183 , 2201 ) :: gap = 18
  89. n = 2184 -> 2197 = 13^3
  90. INTERVAL ( 5749 , 5767 ) :: gap = 18
  91. n = 5750 -> 5759 = 13 * 443
  92. INTERVAL ( 9109 , 9127 ) :: gap = 18
  93. n = 9110 -> 9119 = 11 * 829
  94. INTERVAL ( 9439 , 9461 ) :: gap = 22
  95. n = 9440 -> 9449 = 11 * 859
  96. n = 9441 -> 9449 = 11 * 859
  97. n = 9442 -> 9449 = 11 * 859
  98. n = 9443 -> 9449 = 11 * 859
  99. n = 9444 -> 9451 = 13 * 727
  100. INTERVAL ( 13339 , 13357 ) :: gap = 18
  101. n = 13340 -> 13351 = 13^2 * 79
  102. INTERVAL ( 16673 , 16691 ) :: gap = 18
  103. n = 16674 -> 16679 = 13 * 1283
  104. INTERVAL ( 20569 , 20591 ) :: gap = 22
  105. n = 20570 -> 20579 = 13 * 1583
  106. n = 20571 -> 20579 = 13 * 1583
  107. n = 20572 -> 20579 = 13 * 1583
  108. n = 20573 -> 20579 = 13 * 1583
  109. n = 20574 -> 20579 = 13 * 1583
  110. INTERVAL ( 20903 , 20921 ) :: gap = 18
  111. n = 20904 -> 20911 = 11 * 1901
  112. INTERVAL ( 24263 , 24281 ) :: gap = 18
  113. n = 24264 -> 24271 = 13 * 1867
  114. INTERVAL ( 27829 , 27847 ) :: gap = 18
  115. n = 27830 -> 27841 = 11 * 2531
Add Comment
Please, Sign In to add comment