comb_slow.sf 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #!/usr/bin/ruby
  2. #var good_primes = [3, 5, 17, 23, 29, 53, 89, 353]
  3. #var good_primes = [3, 5, 17, 23, 29, 53, 89]
  4. #var good_primes = [3, 5, 17, 23, 29]
  5. #var good_primes = [3, 5, 17, 23, 29, 53, 113, 275969, 896897]
  6. #var good_primes = [3, 5, 17, 23, 29, 83, 89, 113, 197, 353, 449, 617]
  7. #var good_primes = [3, 5, 17, 23, 29, 83, 89, 113, 197, 353, 449, 617, 3137, 3329]
  8. var good_primes = [3, 5, 17, 23, 29, 83, 89, 353, 449]
  9. #var good_primes = [3, 5, 17, 23, 29, 53, 89, 113]
  10. #var good_primes = [3, 5, 17, 23, 29, 53, 89, 113, 3137, 9857]
  11. #var good_primes = [3, 5, 17, 23, 29, 53, 83, 2003, 93809, 202049, 375233, 1500929]
  12. #var good_primes = [3, 5, 17, 23, 29, 53, 89, 353, 2297, 202049, 375233, 1500929]
  13. var good_prod = good_primes.prod
  14. #var C = 871005264581548962932418919531990803260747265
  15. #var C = 3316648905936338849447649810333831326868806545665
  16. #var C = 610012201694720081796846702960249688144417680786846465
  17. var C = 165502573617193579886078524884554371013787876466850820614145
  18. #var C = 406402829025353014759868508514893182061635216385
  19. var L = C.factor.map{.dec}.lcm
  20. #L *= 4
  21. #L = lcm(10506496,294181888)
  22. #L >>= 5
  23. #L = 1350272*4
  24. #L = 34818399616
  25. say "lcm = #{L} (has #{L.sigma0} divisors)"
  26. var div = L.divisors.map{.inc}.grep{.is_prime}.grep{.is_odd}
  27. div = div.grep { !good_primes.contains(_) }
  28. say div
  29. say "binomial(#{div.len}, #{div.len>>1}) = #{binomial(div.len, div.len>>1)}"
  30. for k in (3..div.len) {
  31. say "Testing: #{k}"
  32. div.combinations(k, {|*a|
  33. if ((a.prod * good_prod).is_carmichael) {
  34. say (a.prod * good_prod)
  35. }
  36. })
  37. }
  38. __END__
  39. 166320 -> 3649
  40. 15120 -> 2972
  41. 110880 -> 2925
  42. 55440 -> 2828
  43. 277200 -> 2775
  44. 25200 -> 2685
  45. 196560 -> 2586
  46. 332640 -> 2572
  47. 75600 -> 2483
  48. 65520 -> 2432
  49. 131040 -> 2274
  50. 720720 -> 2217
  51. 327600 -> 2185
  52. 100800 -> 2114
  53. 45360 -> 1964
  54. 221760 -> 1957
  55. 30240 -> 1940
  56. 831600 -> 1937
  57. 257040 -> 1917
  58. 60480 -> 1899
  59. 7201568 -> 1
  60. 4352299952 -> 1
  61. 5789168 -> 1
  62. 2618528 -> 1
  63. 2700544 -> 1
  64. 285824 -> 1
  65. 1350272 -> 1
  66. 2520 -> 226
  67. 3960 -> 141
  68. 3360 -> 128
  69. 3600 -> 127
  70. 2160 -> 119
  71. 4680 -> 114
  72. 6120 -> 106
  73. 6336 -> 95
  74. 5940 -> 86
  75. 4032 -> 82
  76. 6048 -> 67
  77. 1680 -> 65
  78. 9000 -> 63
  79. 9072 -> 61
  80. 4200 -> 60
  81. 3024 -> 53
  82. 4320 -> 52
  83. 1260 -> 52
  84. 4800 -> 52
  85. 9720 -> 48
  86. 1093200 -> 4
  87. 1012480 -> 3
  88. 1568400 -> 3
  89. 19153848 -> 2
  90. 1086840 -> 2
  91. 6984864 -> 2
  92. 2495532 -> 2
  93. 1320840 -> 2
  94. 1649640 -> 2
  95. 1461564 -> 2
  96. 1754970 -> 2
  97. 1840230 -> 2
  98. 5145300 -> 2
  99. 4156860 -> 2
  100. 2716452 -> 2
  101. 3715860 -> 2
  102. 1402092 -> 2
  103. 6531960 -> 2
  104. 1236300 -> 2
  105. 1626576 -> 2