generate.sf 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/usr/bin/ruby
  2. # 3-powerful numbers that can be written as the sum of two coprime 3-powerful numbers.
  3. # https://oeis.org/A297867
  4. # Knwon terms:
  5. # 776151559, 3518958160000
  6. # Potential values for a:
  7. # (11*n + 7)^3
  8. # (12n+7)^3
  9. # (10*n + 1)^3
  10. # Also of interest may be:
  11. # https://oeis.org/A277636
  12. func k_powerful_numbers(n, t, k=2) {
  13. var powerful = []
  14. func (m,r) {
  15. if (r < k) {
  16. if (m > t) {
  17. powerful << m
  18. }
  19. return nil
  20. }
  21. for a in (1 .. iroot(idiv(n,m), r)) {
  22. a.is_coprime(t) || next
  23. if (r > k) {
  24. a.is_coprime(m) || next
  25. a.is_squarefree || next
  26. }
  27. __FUNC__(m * a**r, r-1)
  28. }
  29. }(1, 2*k - 1)
  30. powerful
  31. }
  32. #var M = 776151559
  33. #var P = powerful(M, 3).grep { _ > 1e4 }
  34. var P = (1..100 -> map {|n| (11*n + 7)**3 })
  35. #var P = (1..100 -> map {|n| (12*n + 7)**3 })
  36. #var P = (1..100 -> map {|n| (10*n + 1)**3 })
  37. for a in (P) {
  38. for b in (k_powerful_numbers(100*a, a, 3)) {
  39. if (is_powerful(a + b, 3)) {
  40. say "#{a} + #{b} = #{a + b}"
  41. }
  42. if (is_powerful(abs(a-b), 3)) {
  43. say "Found triple: (#{a}, #{b}, #{abs(a-b)})"
  44. }
  45. }
  46. }
  47. __END__
  48. Found triple: (19902511, 776151559, 756249048)
  49. 19902511 + 756249048 = 776151559