fundo
O número de Ramanujan, 1729, é chamado de número de táxi devido ao conto (possivelmente apócrifo) de Hardy embarcando em um táxi para visitar Ramanujan no hospital com esse número, que lhe parecia insípido.
Desde então, é conhecido como o mais famoso de uma classe de números inteiros, conhecida como "números de táxi", que é expressável como a soma de dois enésimos poderes (de números inteiros positivos) de duas (ou às vezes 'k') maneiras diferentes.
1729 é o menor número natural expressável como a soma de 2 cubos de 2 maneiras diferentes, tornando-o o primeiro número de táxi "3,2" (sendo "n, k" geral)).
Desafio
Dado um número, decida se é um "número de táxi secundário" "3,2" - o que significa que ele cumpre a mesma restrição que 1729 (2 somas únicas de cubos), mas não precisa ser o menor número inteiro "3" , Classe 2 "(sendo 1729, é claro).
Casos de exemplo:
1729 = 10 ^ 3 + 9 ^ 3 = 12 ^ 3 + 1 ^ 3
4104 = 15 ^ 3 + 9 ^ 3 = 16 ^ 3 + 2 ^ 3
Determine o valor de x na figura abaixo:
Bem como 20683, 32832, 39312 ...
Pontuação
Isso é código-golfe , então a resposta mais curta em cada idioma vence.
Código aproximado do Matlab para encontrar outros casos por força bruta:
for k = 1729:20000
C = sum(round(mod(real((k-[1:ceil(k^(1/3))].^3).^(1/3)),1)*10000)/10000==1);
if C > 1
D = (mod(C,2)==0)*C/2 + (mod(C,2)==1)*((C+1)/2);
disp([num2str(k),' has ',num2str(D),' solns'])
end
end
fonte
Respostas:
05AB1E , 9 bytes
Código (muito lento)
Código (muito mais rápido), 12 bytes
Usa a codificação 05AB1E . Experimente online!
Explicação
fonte
Geléia , 9 bytes
Créditos a Erik, o Outgolfer.
Experimente online!
É muito lento que nem funciona
1729
online.Muito mais rápido, 12 bytes
Créditos ao Dennis.
Experimente online!
fonte
Ðf⁸
pode se tornarfR
. O segundo⁸
pode ser removido.Œċ*3S€ċ>1
.Mathematica, 35 bytes
Função pura pegando um número inteiro positivo e retornando
True
ouFalse
.#^3+#2^3&~Array~{#,#}
tabula todas as somas de cubos de dois números inteiros entre 1 e a entrada. (Isso seria muito mais rápido com um limite sensível nos números inteiros a serem cubados, como a raiz do cubo da entrada; mas isso exigiria bytes preciosos. Como é, o código leva cerca de 30 segundos na entrada13832
e é dimensionado pelo menos quadraticamente na entrada.)Count[...,#,2]
conta quantas vezes a entrada aparece nesta lista no nível 2 do ninho; se esse número for maior que2
, a entrada será um número semi-taxicab (maior que 2, e não maior que 1, uma vez que a ^ 3 + b ^ 3 eb = 3 + a ^ 3 estão sendo contados separadamente).fonte
Mathematica,
3837 bytes-1 byte graças a @GregMartin
Como sempre, existe um Mathematica embutido em tudo.
fonte
Tr[1^...]
funcione no lugar deLength@
.JavaScript (ES7), 63 bytes
Uma função recursiva relativamente rápida que eventualmente retorna um booleano.
Demo
Mostrar snippet de código
fonte
Mathematica, 48 bytes
entrada
resultado
fonte
#!=1729&&
não é mais necessário agora que as especificações foram esclarecidas.Solve
vez deReduce
?Length@Solve[x^3+y^3-#==0<x<y,{x,y},Integers]>1&
qual substitui o&&
com-
e um pouco de reorganização.Python, 71 bytes
Experimente online
fonte
MATL (
1615 bytes) (1312 ideal)Experimente online!
Explicação:
Com base na solução Jelly de 'Leaky Nun', convertida para MATL, provavelmente redundante em algumas partes e pode ser melhorada:
Nota: as saídas falsas incluem 0 e -1, enquanto a saída verdadeira é 1. Agradecemos a Luis Mendo por salvar um byte extra aqui substituindo "s1>" por "sq".
Idealmente (
1312 bytes):... é suficiente, mas para números maiores isso trava na página do tio.run.
fonte
1>
porq
. Além disso, você tem emH
vez daG
explicação. O fato de o programa travar em grandes números geralmente é irrelevante para a pontuação. Se ele funciona dado tempo suficiente e memória que é aceitável, a menos que especifica desafio de outra formaRuby , 52 bytes
Experimente online!
Como esta versão cria uma enorme matriz de tamanho n 2 , ela falha em todos os casos de teste verdadeiros superiores a
1729
, aqui está uma versão modificada que possui um tamanho de matriz menor de cerca de n 2/3 , que verifica com êxito pelo menos até 31392.Experimente online! (modificado)
fonte
PHP , 76 bytes
Experimente online!
Pesquisar até 400000 Experimente online!
fonte