12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #!/usr/bin/ruby
- # 3-powerful numbers that can be written as the sum of two coprime 3-powerful numbers.
- # https://oeis.org/A297867
- # Knwon terms:
- # 776151559, 3518958160000
- # Potential values for a:
- # (11*n + 7)^3
- # (12n+7)^3
- # (10*n + 1)^3
- # Also of interest may be:
- # https://oeis.org/A277636
- func k_powerful_numbers(n, t, k=2) {
- var powerful = []
- func (m,r) {
- if (r < k) {
- if (m > t) {
- powerful << m
- }
- return nil
- }
- for a in (1 .. iroot(idiv(n,m), r)) {
- a.is_coprime(t) || next
- if (r > k) {
- a.is_coprime(m) || next
- a.is_squarefree || next
- }
- __FUNC__(m * a**r, r-1)
- }
- }(1, 2*k - 1)
- powerful
- }
- #var M = 776151559
- #var P = powerful(M, 3).grep { _ > 1e4 }
- var P = (1..100 -> map {|n| (11*n + 7)**3 })
- #var P = (1..100 -> map {|n| (12*n + 7)**3 })
- #var P = (1..100 -> map {|n| (10*n + 1)**3 })
- for a in (P) {
- for b in (k_powerful_numbers(100*a, a, 3)) {
- if (is_powerful(a + b, 3)) {
- say "#{a} + #{b} = #{a + b}"
- }
- if (is_powerful(abs(a-b), 3)) {
- say "Found triple: (#{a}, #{b}, #{abs(a-b)})"
- }
- }
- }
- __END__
- Found triple: (19902511, 776151559, 756249048)
- 19902511 + 756249048 = 776151559
|