gcd_primes_count_euler_phi_like.sf 947 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #!/usr/bin/ruby
  2. for n in (2..50) {
  3. var sum = 0
  4. var arr = []
  5. for m in (1 .. n) {
  6. var k = n
  7. k /= gcd(k, m)
  8. if (k.is_prime) {
  9. arr << k
  10. sum += 1;
  11. }
  12. }
  13. var prev = 0
  14. var table = []
  15. for k in (arr) {
  16. if (prev != k) {
  17. table << [k, 0]
  18. }
  19. table[-1][-1] += 1
  20. prev = k
  21. }
  22. say "L(#{n}) = #{table.map{_[1]}.sum}"
  23. }
  24. __END__
  25. L(2) = 1
  26. L(3) = 2
  27. L(4) = 1
  28. L(5) = 4
  29. L(6) = 3
  30. L(7) = 6
  31. L(8) = 1
  32. L(9) = 2
  33. L(10) = 5
  34. L(11) = 10
  35. L(12) = 3
  36. L(13) = 12
  37. L(14) = 7
  38. L(15) = 6
  39. L(16) = 1
  40. L(17) = 16
  41. L(18) = 3
  42. L(19) = 18
  43. L(20) = 5
  44. L(21) = 8
  45. L(22) = 11
  46. L(23) = 22
  47. L(24) = 3
  48. L(25) = 4
  49. L(26) = 13
  50. L(27) = 2
  51. L(28) = 7
  52. L(29) = 28
  53. L(30) = 7
  54. L(31) = 30
  55. L(32) = 1
  56. L(33) = 12
  57. L(34) = 17
  58. L(35) = 10
  59. L(36) = 3
  60. L(37) = 36
  61. L(38) = 19
  62. L(39) = 14
  63. L(40) = 5
  64. L(41) = 40
  65. L(42) = 9
  66. L(43) = 42
  67. L(44) = 11
  68. L(45) = 6
  69. L(46) = 23
  70. L(47) = 46
  71. L(48) = 3
  72. L(49) = 6
  73. L(50) = 5