connection_to_cyclotomic_polynomials.sf 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/usr/bin/ruby
  2. # Sequence by Wesley Ivan Hurt:
  3. # a(n) = Sum_{i=1..n} denominator(n^i/i).
  4. # OEIS:
  5. # https://oeis.org/A279911
  6. # Interesting formula:
  7. # a(p^k) = (p^(2*k+1) + p + 2) / (2*(p+1)), for prime powers p^k.
  8. func a(n) {
  9. sum(1..n, {|k|
  10. gcd(n,k) == 1 ? k : k.divisors.last_by {|d| gcd(d,n) == 1 }
  11. })
  12. }
  13. say 20.range.grep{.is_prime_power}.map(a)
  14. # (p^(2*k+1) + p + 2) / (2*(p+1)),
  15. say 20.range.grep{.is_prime_power}.map {|pp|
  16. var p = pp.prime_root
  17. var k = pp.prime_power
  18. #(p**(2*k + 1) + p + 2) / (2*p + 2)
  19. k==2 ? (cyclotomic(10, p)+1 / 2) : ((p**(2*k + 1) + p + 2) / (2*p + 2))
  20. }
  21. var k = 14
  22. var a = 20.of {|n|
  23. (n**(k*2 + 1) + n + 2) / (2*(n+1))
  24. }
  25. for n in (1..100) {
  26. var t = 20.of {|x|
  27. cyclotomic(n, x) + 1 / 2
  28. }
  29. if (t == a) {
  30. say "Found: #{n}"
  31. }
  32. }
  33. __END__
  34. # For k such that 2k+1 is prime,
  35. # the values of n in cyclotomic(n,x) are the even semiprimes.
  36. k = 2 -> (cyclotomic(10, n)+1)/2
  37. k = 3 -> (cyclotomic(14, n)+1)/2
  38. k = 5 -> (cyclotomic(22, n)+1)/2
  39. k = 6 -> (cyclotomic(26, n)+1)/2
  40. k = 8 -> (cyclotomic(34, n)+1)/2
  41. k = 9 -> (cyclotomic(38, n)+1)/2
  42. k = 11 -> (cyclotomic(46, n)+1)/2
  43. k = 14 -> (cyclotomic(58, n)+1)/2
  44. say 20.of{|n|
  45. #n.is_prime_power ? (cyclotomic(10, n.prime_root)+1 / 2) : a(n)
  46. #cyclotomic(10, n.prime)+1 / 2
  47. #n.factor_map {|p|
  48. # cyclotomic(10, p)+1 / 2
  49. #}.sum
  50. }