verify.sf 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/usr/bin/ruby
  2. # a(11) found m = 2138939853538560
  3. # a(11) found m = 2526176995612160
  4. # a(10) found m = 4009513558110720
  5. # a(10) found m = 4196243334041600
  6. # a(10) found m = 4250890925448960
  7. # a(10) found m = 4264772670403840
  8. # a(10) found m = 4694331125702400
  9. # a(11) found m = 4729522651983360
  10. # a(10) found m = 4790852606791680
  11. # a(10) found m = 4996830163610880
  12. # a(10) found m = 5101817933587200
  13. # a(10) found m = 5264522678120960
  14. # a(10) found m = 5431371042905600
  15. # a(10) found m = 5523092697191680
  16. # a(10) found m = 5525194236573440
  17. # a(10) found m = 5727625856001280
  18. # a(10) found m = 5778987687573760 (very close)
  19. # a(10) found m = 5852062539581440
  20. # a(10) found m = 5937381618013440
  21. # a(10) found m = 5948907374009600
  22. # a(10) found m = 5968911763043840
  23. # a(11) found m = 6026433544209920
  24. # a(10) found m = 6217329296404480
  25. # a(10) found m = 6225694946248960
  26. # a(10) found m = 6246007399831040
  27. # a(10) found m = 6312132216947200
  28. # a(10) found m = 6457158628226560
  29. # a(10) found m = 6871581212112640
  30. # a(10) found m = 6892136392410880
  31. # a(10) found m = 6932779745830400
  32. # a(10) found m = 6961627426082560
  33. # a(10) found m = 7102360767040000
  34. # a(10) found m = 7406828409708800
  35. # a(10) found m = 7524854188308480
  36. # a(10) found m = 7703508535374080
  37. # a(10) found m = 7732872117268480
  38. # a(10) found m = 7828103794118400
  39. # a(10) found m = 7965222599924480
  40. # a(9) found m = 8012463159733760
  41. # a(9) found m = 8019012379031040
  42. # a(9) found m = 8024799172980480
  43. # a(9) found m = 8024968426908160
  44. # a(9) found m = 8028016589340160
  45. # a(9) found m = 8028450913889280
  46. func chernick_carmichael_factors (n, m) {
  47. [6*m + 1, 12*m + 1, {|i| 2**i * 9*m + 1 }.map(1 .. n-2)...]
  48. }
  49. func is_chernick_carmichael (n, m) {
  50. (n == 2) ? (is_prime(6*m + 1) && is_prime(12*m + 1))
  51. : (is_prime(2**(n-2) * 9*m + 1) && __FUNC__(n-1, m))
  52. }
  53. var m = 8028450913889280
  54. var a = chernick_carmichael_factors(12, m)
  55. for k in (3..a.len) {
  56. var t = a.first(k).prod
  57. say t if t.is_carmichael
  58. }
  59. say ''
  60. # If all three are true, then a(12) has been found
  61. say is_chernick_carmichael(10, m) # true if first 10 factors are prime
  62. say is_chernick_carmichael(11, m) # true if first 11 factors are prime
  63. say is_chernick_carmichael(12, m) # true if first 12 factors are prime
  64. say ''
  65. say chernick_carmichael_factors(12, m).map{.is_prime}
  66. say chernick_carmichael_factors(11, m).last.factor
  67. say chernick_carmichael_factors(12, m).last.factor
  68. #~ say ''
  69. #~ say chernick_carmichael_factors(11,m).prod.is_carmichael
  70. #~ say chernick_carmichael_factors(12,m).prod.is_carmichael