idea_to_try.sf 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. #!/usr/bin/ruby
  2. # Idea: for each number `n` in `arr` and for each lambda `l` in `arr`, replace large prime factors of `l` with other prime divisors from lambda `l`.
  3. var arr = [
  4. 487954732492026166035814706202314376705
  5. 141934960805533535384100259905
  6. 2609668563371076823446624111609234945
  7. 22321294006753093794484119100782564881584237146952694846489144434824034305
  8. 72148620605333310080719701812041760839024918297692839329815300886091224428394819515628545
  9. 967037403232220731074074563038316755517610240570658812669537184604036430235566311331012838883641380865
  10. 406402829025353014759868508514893182061635216385
  11. 15076244937897319383799036175429336548625369631595367899653198961989759434810928251355411574785
  12. 871005264581548962932418919531990803260747265
  13. 610012201694720081796846702960249688144417680786846465
  14. 278162906898013748642772019172998608839057854602841254854175736240572851175099616062424065
  15. 2963658210542356083852877246926416492931527804540089510269883905
  16. 1692492088492238622532768569558090666689925078386295740708067178336619326186090793391105
  17. 644811775887535379664225513644980219319376317839497786625735944865592422785
  18. 2845358328636614328617082131255054540223949221002124433109986305
  19. 74875990602425226938138664024259158432269224416705
  20. 1018329989576989704159754753835889677652405111555820545
  21. 71967245196653338257378864734797608168672816153312963139871238665985
  22. 19666546275088335320957353962363201658812107005039715284928928608628170883585
  23. 129959381219943649417033775959204959948797179242551459265680758859265
  24. 463149379463251167706230703520995680069543921166639491398457345
  25. 19948738964527549499432007591778845447137932958457586625953063419475941273954097665
  26. 165502573617193579886078524884554371013787876466850820614145
  27. 382314270322310985139418831028955559235551077239363319937510690579825910692881422216705
  28. 2853450403236152332571821875265293508017495635204070217869999840422343584089739265
  29. 14701083488299057530174696885922722686956286485260401577115414785
  30. 61751285336040585295804391670071058142224865543324607243406589162503580666870926270465
  31. 37839385943068863406967633413004957540054532539686888463944906014566240419460804270776358938980032660929917901837033235462145
  32. 772459017179480479061611372132330246001039753130436193419524315193543873326133868681083905
  33. 321030150905393790929751720043602006651739765349595158023943724894346115208705
  34. ]
  35. var bern = Hash(
  36. 1 0
  37. 2 1
  38. 3 2
  39. 4 4
  40. 5 6
  41. 6 10
  42. 7 12
  43. 8 30
  44. 9 36
  45. 10 60
  46. 11 72
  47. 12 108
  48. 13 120
  49. 14 144
  50. 15 180
  51. 16 240
  52. 17 360
  53. 18 420
  54. 19 540
  55. 20 840
  56. 21 1008
  57. 22 1080
  58. 23 1200
  59. 24 1260
  60. 25 1620
  61. 26 1680
  62. 27 2016
  63. 28 2160
  64. 29 2520
  65. 30 3360
  66. 31 3780
  67. 32 5040
  68. 33 6480
  69. 34 7560
  70. 35 8400
  71. 36 10080
  72. 37 12600
  73. 38 15120
  74. 39 25200
  75. 40 30240
  76. 41 42840
  77. 42 45360
  78. 43 55440
  79. 44 60480
  80. 45 75600
  81. 46 85680
  82. 47 100800
  83. 48 110880
  84. 49 128520
  85. 50 131040
  86. 51 166320
  87. 52 196560
  88. 53 257040
  89. 54 332640
  90. 55 393120
  91. 56 514080
  92. 57 655200
  93. 58 665280
  94. 59 786240
  95. 60 831600
  96. 61 917280
  97. 62 982800
  98. 63 1081080
  99. 64 1179360
  100. 65 1285200
  101. 66 1310400
  102. 67 1441440
  103. 68 1663200
  104. 69 1965600
  105. 70 2162160
  106. 71 2751840
  107. 72 2827440
  108. 73 3326400
  109. 74 3341520
  110. 75 3603600
  111. 76 3931200
  112. 77 4324320
  113. 78 5654880
  114. 79 6652800
  115. 80 6683040
  116. 81 7207200
  117. 82 8648640
  118. 83 10810800
  119. 84 12972960
  120. 85 14414400
  121. 86 18378360
  122. 87 21621600
  123. 88 36756720
  124. 89 43243200
  125. 90 64864800).values.sort
  126. var nf = [80, 120, 144, 2520, 5760, 6480, 7920, 15120, 30240, 94248, 110880, 285120, 597168, 604800, 1441440, 1663200, 1738800, 2217600, 5216400, 13305600, 43243200, 64864800, 648648000, 4034016000, 8951342400, 12070749600, 67541947200]
  127. #say arr.join(' ')
  128. #var primes = [3, 5, 17, 23, 29, 53, 83, 89, 113, 197, 353, 617]
  129. #var primes = [3, 5, 17, 23, 29, 53, 83, 89, 113]
  130. var primes = [3, 5, 17, 23, 29, 83]
  131. #var primes = [3, 5, 17, 23, 29, 43, 53, 89, 113, 127, 157, 257]
  132. var P = primes.prod
  133. for n in (arr) {
  134. say "# n = #{n.len}"
  135. var f = n.factor.grep { !primes.has(_) }
  136. for k in (f.len ^.. f.len-5 ) {
  137. say "# Combination: #{k}"
  138. f.combinations(k, {|*a|
  139. with (a.prod * P) {|c|
  140. if (c.is_carmichael) {
  141. say "\n\t\t\tFound: #{c}\n"
  142. }
  143. }
  144. })
  145. }
  146. }
  147. __END__
  148. for n in (arr.map{.lambda}.uniq.sort) {
  149. say "# Bern = #{n}"
  150. var d = n.divisors.grep{ _ > 1}.map{.inc}.grep{.is_prime}.grep{!primes.has(_)}.grep{ _ > primes.max}.grep{ _ < 1e6}
  151. for k in (1..d.len) {
  152. say "# Combination: #{k}"
  153. d.combinations(k, {|*a|
  154. with (a.prod * P) {|c|
  155. if (c.is_carmichael) {
  156. say "\n\t\t\tFound: #{c}\n"
  157. }
  158. #say c if c.is_pseudoprime
  159. }
  160. })
  161. }
  162. }