Por volta do ano de 1637, Pierre de Fermat escreveu nas margens de sua cópia da Aritmética:
It is impossible to separate a cube into two cubes, or a fourth power
into two fourth powers, or in general, any power higher than the
second, into two like powers. I have discovered a truly marvelous
proof of this, which this margin is too narrow to contain.
Infelizmente para nós, a margem ainda é muito estreita para conter a prova. Hoje, escreveremos nas margens um programa simples que confirma a prova de entradas arbitrárias.
O desafio
Queremos um programa para a função que recebe um poder, o separa em dois pares de dois poderes o mais próximo possível do poder. Queremos que o programa que faz isso seja o menor possível, para que ele caiba nas margens.
Entrada
O poder e o número de potência: c
,x
Restrições: c > 2
ex > 2
A entrada pode ser por meio de argumentos do programa, argumentos da função ou do usuário.
Saída
Essa seqüência exata: " a^x + b^x < c^x
" com a
, b
, c
, e x
substituídas por seus valores inteiros literais. a
e b
deve ser escolhido para que a^x + b^x < c^x
nenhum outro valor a
ou b
o aproxime c^x
. Além disso:a>=b>0
A saída pode ser por meio do valor de retorno da função, stdout, salvo em um arquivo ou exibido na tela.
Exemplos:
> 3 3
2^3 + 2^3 < 3^3
> 4 3
3^3 + 3^3 < 4^3
> 5 3
4^3 + 3^3 < 5^3
> 6 3
5^3 + 4^3 < 6^3
> 7 3
6^3 + 5^3 < 7^3
> 8 3
7^3 + 5^3 < 8^3
Devido às habilidades médias de escrita de Fermat, caracteres não imprimíveis não são permitidos. O programa com o menor número de caracteres vence.
Classificação
Aqui está um snippet de pilha para gerar uma classificação regular e uma visão geral dos vencedores por idioma.
Para garantir que sua resposta seja exibida, inicie-a com um título, usando o seguinte modelo de remarcação:
## Language Name, N characters
Como alternativa, você pode começar com:
## Language Name, N bytes
onde N
está o tamanho do seu envio. Se você melhorar sua pontuação, poderá manter as pontuações antigas no título, identificando-as. Por exemplo:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Se você quiser incluir vários números no cabeçalho (por exemplo, porque sua pontuação é a soma de dois arquivos ou você deseja listar as penalidades do sinalizador de intérpretes separadamente), verifique se a pontuação real é o último número no cabeçalho:
## Perl, 43 + 2 (-p flag) = 45 bytes
Você também pode transformar o nome do idioma em um link que será exibido no snippet do placar de líderes:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
x
então c
?
a>=b>0
ou o seu primeiro exemplo seria inválido. E por que precisamos mostrar<
quando você quer que seja<=
?