modulo.sf 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/usr/bin/ruby
  2. func U(k, m) {
  3. k.divisors.first(-1).map {|d|
  4. d*k*m - 1
  5. }
  6. }
  7. for k in (1..40) {
  8. say [k, U(8128, k).map{ _ % 29}]
  9. }
  10. __END__
  11. var list = []
  12. for p in (primes(3,100000)) {
  13. var t = (1..p -> lazy.map{|k| [k, U(8128, k).map{_ % p}] }.first { _[1].contains(0).not }[0])
  14. if (t == 2) {
  15. say p
  16. }
  17. }
  18. say list.lcm
  19. #say U(496, 10405375365)
  20. __END__
  21. Mod 3:
  22. m |
  23. ----+---------------------------------------
  24. 1 | [0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1]
  25. 2 | [1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0]
  26. 3 | [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2] # for m = 3*1, the factors or not divisible by 3
  27. 4 | [0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1]
  28. 5 | [1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0]
  29. 6 | [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2] # for m = 3*2, the factors or not divisible by 3
  30. 7 | [0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1]
  31. 8 | [1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0]
  32. 9 | [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2] # for m = 3*3, the factors or not divisible by 3
  33. Mod 5:
  34. m |
  35. ----+----------------------------------------
  36. 1 | [2, 0, 1, 3, 2, 0, 1, 0, 1, 3, 2, 0, 1]
  37. 2 | [0, 1, 3, 2, 0, 1, 3, 1, 3, 2, 0, 1, 3]
  38. 3 | [3, 2, 0, 1, 3, 2, 0, 2, 0, 1, 3, 2, 0]
  39. 4 | [1, 3, 2, 0, 1, 3, 2, 3, 2, 0, 1, 3, 2]
  40. 5 | [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] # for m = 5*1, the factors are not divisible by 5
  41. 6 | [2, 0, 1, 3, 2, 0, 1, 0, 1, 3, 2, 0, 1]
  42. 7 | [0, 1, 3, 2, 0, 1, 3, 1, 3, 2, 0, 1, 3]
  43. 8 | [3, 2, 0, 1, 3, 2, 0, 2, 0, 1, 3, 2, 0]
  44. 9 | [1, 3, 2, 0, 1, 3, 2, 3, 2, 0, 1, 3, 2]
  45. 10 | [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] # for m = 5*1, the factors are not divisible by 5
  46. m |
  47. ----+-------------------------------------------------------------------------------------------------------------------------
  48. 1 | [ 8127, 16255, 32511, 65023, 130047, 260095, 520191, 1032255, 2064511, 4129023, 8258047, 16516095, 33032191]
  49. 2 | [16255, 32511, 65023, 130047, 260095, 520191, 1040383, 2064511, 4129023, 8258047, 16516095, 33032191, 66064383]
  50. 3 | [24383, 48767, 97535, 195071, 390143, 780287, 1560575, 3096767, 6193535, 12387071, 24774143, 49548287, 99096575]
  51. 4 | [32511, 65023, 130047, 260095, 520191, 1040383, 2080767, 4129023, 8258047, 16516095, 33032191, 66064383, 132128767]
  52. 5 | [40639, 81279, 162559, 325119, 650239, 1300479, 2600959, 5161279, 10322559, 20645119, 41290239, 82580479, 165160959]
  53. 6 | [48767, 97535, 195071, 390143, 780287, 1560575, 3121151, 6193535, 12387071, 24774143, 49548287, 99096575, 198193151]
  54. 7 | [56895, 113791, 227583, 455167, 910335, 1820671, 3641343, 7225791, 14451583, 28903167, 57806335, 115612671, 231225343]
  55. 8 | [65023, 130047, 260095, 520191, 1040383, 2080767, 4161535, 8258047, 16516095, 33032191, 66064383, 132128767, 264257535]
  56. 9 | [73151, 146303, 292607, 585215, 1170431, 2340863, 4681727, 9290303, 18580607, 37161215, 74322431, 148644863, 297289727]
  57. 10 | [81279, 162559, 325119, 650239, 1300479, 2600959, 5201919, 10322559, 20645119, 41290239, 82580479, 165160959, 330321919]