fundo
O número 1729 é o número Hardy-Ramanujan. Uma propriedade incrível foi descoberta por S. Ramanujan (que é amplamente considerado o maior matemático indiano 1 ), quando GH Hardy o visitou em um hospital. Nas próprias palavras de Hardy:
Lembro-me de uma vez ir vê-lo quando estava doente em Putney. Eu tinha andado de táxi número 1729 e observei que o número me parecia um tanto monótono e que esperava que não fosse um presságio desfavorável. "Não", respondeu ele, "é um número muito interessante; é o menor número expressável como a soma de dois cubos de duas maneiras diferentes".
Além disso, possui muitas outras propriedades incríveis. Uma dessas propriedades é que é um número Harshad, ou seja, a soma de seus dígitos (1 + 7 + 2 + 9 = 19) é um fator disso. Isso também, um especial. Como Masahiko Fujiwara mostrou, 1729 é um número inteiro positivo que, quando seus dígitos são somados, produz uma soma que, quando multiplicada por sua reversão, produz o número original:
1 + 7 + 2 + 9 = 19
19 × 91 = 1729
Um número inteiro positivo tendo tal propriedade é o que eu defino como Hardy-Ramanujan- ish Harshad Número, para o propósito deste post. (Pode haver um termo técnico para ele, mas não consigo encontrá-lo, a menos que seja membro do A110921 )
A tarefa
Dado um número inteiro positivo n
como entrada, um valor de saída truthy ou Falsey com base em se a entrada n
é um equilíbrio de Hardy-Ramanujan- ish Número Harshad. Saída de verdade, se for. Caso contrário, falsey de saída.
Note-se que apenas quatro Hardy-Ramanujan- ish existe número harshad ( 1
, 81
, 1458
e 1729
), e você pode escrever código que verifica equivalência com eles. Mas não acho que isso seja divertido.
Entrada
Seu programa deve ter um número inteiro positivo (um número natural, em outras palavras). Pode levar de qualquer maneira, exceto assumindo que ele esteja presente em uma variável. A leitura da janela modal, caixa de entrada, linha de comando, arquivo etc. é permitida. Tomar entrada como argumento de função também é permitido.
Resultado
Seu programa deve gerar um valor de verdade ou falsey. Eles não precisam ser consistentes. Seu programa pode produzir de qualquer maneira, exceto gravar a saída em uma variável. É permitido escrever na tela, linha de comando, arquivo etc. A saída com função também return
é permitida.
Regras adicionais
Você não deve usar um built-in para realizar a tarefa (imagino que qualquer idioma tenha esse built-in, mas depois o Mathematica ... )
Aplicam-se brechas padrão .
Casos de teste
Input Output
1 Truthy (because 1 × 1 (reverse of 1) = 1)
2 Falsey
3 Falsey
4 Falsey
5 Falsey
81 Truthy (because 9 (8 + 1) × 9 (reverse of 9) = 81)
1458 Truthy (because 18 (1 + 4 + 5 + 8) × 81 (reverse of 18) = 1458)
1729 Truthy (because 19 (1 + 7 + 2 + 9) × 91 (reverse of 19) = 1729)
1730 Falsey
2017 Falsey
Critério vencedor
Isso é código-golfe , então o código mais curto em bytes vence!
1 Todos os anos, no dia 22 nd de dezembro, o aniversário de Srinivasa Ramanujan, Dia Nacional da Matemática é observado na Índia. Seus colegas, aqueles em Cambridge, o compararam a Jacobi, Euler e até Newton. Além de ser tão bom, ele quase não tinha treinamento formal em Matemática Pura , mas ainda assim, fez importantes contribuições à análise matemática , teoria dos números , séries infinitas e frações contínuas . Infelizmente, ele morreu aos 32 anos, com milhares de descobertas matemáticas em sua mente. Também foi feito um filme sobre ele, baseado em sua biografia ,O homem que conhecia o infinito .