1729: o número de Ramanujan

Doherty Andrade

G. H. Hardy relatou como se deparou com a singularidade do número 1729 e o quanto Ramanjan conhecia a respeito deste número.

"EU Lembro-me de ir vê-lo uma vez quando ele estava doente em Putney. Eu havia pegado o táxi número 1729 e observei que o número me parecia um tanto enfadonho e que esperava que não fosse um presságio desfavorável. “Não”, Ramanujan respondeu, “é um número muito interessante; é o menor número que pode ser representado como a soma de dois cubos de duas maneiras diferentes. ” - GH Hardy (1918)

image.png

As duas maneiras diferentes que expressam 1729 como a soma de dois cubos são:$$ 1³ + 12³$$ e $$9³ + 10³.$$ O número tornou-se conhecido como o número de Ramanujan, também chamado "número de táxi". Número de táxi é o número que pode ser expresso como a soma de dois cubos de $n\geq 2$ maneiras distintas.

Além de 1729, outros inteiros podem ser representados como somas de cubos: $$1^3 + 103^3 = 64^3 + 94^3 = 1092728$$ $$ 1^3 + 150^3 = 73^3 + 144^3 = 3375001.$$

Números expressos como soma de cubos foram mencionados pela primeira vez em 1657 por Bernard Frénicle de Bessy, que descreveu a propriedade citando como exemplo o número 1729 em suas correspondências com John Wallis e Pierre de Fermat. Em 1938, Hardy e EM Wright provaram que tais números existem.

O seguinte procedimento em Python determina os pares de números $x,y $ e $a,b$ menores do que $N$ fornecido que expressam um número como soma de dois cubos de pelo menos duas maneiras diferentes. Isto é: $$ x^3+y^3= N= a^3 +b^3.$$ O tempo de execução é longo, sugiremos tomar $N=20$, para rodar um exemplo.

Veja o exemplo com $N=20$.

In [1]:
def Taxi():
    N = int(input("Entre com o número N: "))
    for x in range(1, N):
        for y in range(1, N):
            for a in range(1, N):
                for b in range(1, N):
                    if b * b * b  + a * a * a  == x * x * x  + y * y * y :
                        if (b == a) or (b == y) or (b == x) or (a == y) or (a == x) or (y == x):
                            continue
                        else:
                            print( "x=" , x)
                            print ("y=", y)
                            print ("a=", a)
                            print ("b=", b)
                            print('O número é:', a * a * a  + b * b * b )
In [2]:
Taxi()
Entre com o número N: 20
x= 1
y= 12
a= 9
b= 10
O número é: 1729
x= 1
y= 12
a= 10
b= 9
O número é: 1729
x= 2
y= 16
a= 9
b= 15
O número é: 4104
x= 2
y= 16
a= 15
b= 9
O número é: 4104
x= 9
y= 10
a= 1
b= 12
O número é: 1729
x= 9
y= 10
a= 12
b= 1
O número é: 1729
x= 9
y= 15
a= 2
b= 16
O número é: 4104
x= 9
y= 15
a= 16
b= 2
O número é: 4104
x= 10
y= 9
a= 1
b= 12
O número é: 1729
x= 10
y= 9
a= 12
b= 1
O número é: 1729
x= 12
y= 1
a= 9
b= 10
O número é: 1729
x= 12
y= 1
a= 10
b= 9
O número é: 1729
x= 15
y= 9
a= 2
b= 16
O número é: 4104
x= 15
y= 9
a= 16
b= 2
O número é: 4104
x= 16
y= 2
a= 9
b= 15
O número é: 4104
x= 16
y= 2
a= 15
b= 9
O número é: 4104

Propriedade semelhante vale para potência 4.

O seguinte procedimento em Python determina os pares de números $x,y $ e $a,b$ menores do que $N$ fornecido que expressam um número como soma de dois inteiros na quarta potência de pelo menos duas maneiras diferentes. Isto é: $$ x^4+y^4= N= a^4 +b^4.$$

Veja o exemplo, abaixo com $N=200$.

In [3]:
# taxi4
def Taxi4():
    N = int(input("Entre com o número N: "))
    for x in range(1, N):
        for y in range(1, N):
            for a in range(1, N):
                for b in range(1, N):
                    if b * b * b * b  + a * a * a *a == x * x * x * x + y * y * y * y:
                        if (b == a) or (b == y) or (b == x) or (a == y) or (a == x) or (y == x):
                            continue
                        else:
                            print( "x=" , x)
                            print ("y=", y)
                            print ("a=", a)
                            print ("b=", b)
                            print('O número é:', a * a * a * a  + b * b * b * b )
In [4]:
Taxi4()
Entre com o número N: 200
x= 59
y= 158
a= 133
b= 134
O número é: 635318657
x= 59
y= 158
a= 134
b= 133
O número é: 635318657
x= 133
y= 134
a= 59
b= 158
O número é: 635318657
x= 133
y= 134
a= 158
b= 59
O número é: 635318657
x= 134
y= 133
a= 59
b= 158
O número é: 635318657
x= 134
y= 133
a= 158
b= 59
O número é: 635318657
x= 158
y= 59
a= 133
b= 134
O número é: 635318657
x= 158
y= 59
a= 134
b= 133
O número é: 635318657
In [ ]: