S. Ryley provou o seguinte teorema em 1825:
Todo número racional pode ser expresso como uma soma de três cubos racionais.
Desafio
Dado algum número racional encontre três números racionais tal modo quer ∈ Qa , b , c ∈ Qr = a3+ b3+ c3.
Detalhes
Seu envio deve ser capaz de calcular uma solução para cada entrada com tempo e memória suficientes, o que significa que, por exemplo, dois de 32 bits int
representando uma fração não é suficiente.
Exemplos
305230717280 0142.= 39829338766813- 6366005495153- 39775055545463= 607029013173+ 239612924543−619227128653=(12)3+(13)3+(14)3=03+03+03= (12)3+ (23)3+ (56)3= (1810423509232)3+ ( -1495210609)3+ ( -25454944)3
[p1,p2,p3,q]
, interpretado como ?Respostas:
Pari / GP , 40 bytes
Experimente online!
O mesmo comprimento, a mesma fórmula:
Experimente online!
Esta fórmula é dada em: Richmond, H. (1930). Em soluções racionais de . Anais da Edinburgh Mathematical Society, 2 (2), 92-100.x3+ y3+ z3= R
Verifique online!
fonte
Haskell ,
9589766968 bytesExperimente online!
Solução bruteforce simples. Ele testa todos os triplos de números racionais do formato( um1n, um2n, um3n)com - n ≤ aEun≤ n .
fonte
[-n,1/n-n..n]
Casca , 14 bytes
Solução simples de força bruta. Experimente online!
Explicação
A divisão em Husk usa números racionais por padrão e os produtos cartesianos funcionam corretamente para listas infinitas, tornando este um programa muito simples.
fonte
JavaScript (Node.js) , 73 bytes
(p)(q)
[[p1,q1],[p2,q2],[p3,q3]]
Experimente online!
Derivado de HW Richmond (1930), em soluções de Rational x 3 + y 3 + Z 3 = R .
fonte
Haskell , 70 bytes
Em uma introdução à Teoria dos Números (de Hardy e Wright), há uma construção que inclui até um parâmetro racional. Para fins de golfe, apenas configurei esse parâmetro como 1 e tentei reduzir o máximo possível. Isso resulta na fórmula
Experimente online!
fonte
perl -Mbigrat -nE, 85 bytes
Você pode salvar 8 bytes (o primeiro
$_=eval;
) se souber que a entrada é um número inteiro; esta parte é necessária para que o programa grok uma entrada do formulário308/1728
. A entrada é lida em STDIN. Estou usando a fórmula dada por @alephalpha.fonte