Фон
Число 1729 - это число Харди-Рамануджана. Удивительное свойство этого было открыто С. Рамануджаном (которого многие считают величайшим индийским математиком 1 ), когда Г.Х. Харди посетил его в больнице. По словам самого Харди:
Я помню, как однажды увидел его, когда он был болен в Путни. Я ехал в такси № 1729 и заметил, что номер мне показался довольно скучным, и я надеялся, что это не было предзнаменованием. «Нет, - ответил он, - это очень интересное число; это наименьшее число, которое можно выразить как сумму двух кубов двумя разными способами».
Кроме того, у него есть много других удивительных свойств. Одним из таких свойств является то, что это число Харшада, то есть сумма его цифр (1 + 7 + 2 + 9 = 19) является его фактором. Это тоже особенный. Как показал Масахико Фудзивара, 1729 - это положительное целое число, которое, когда его цифры складываются вместе, дает сумму, которая при умножении на ее обращение дает исходное число:
1 + 7 + 2 + 9 = 19
19 × 91 = 1729
Положительное целое число , имеющее такое свойство является то , что я определяю как Харди-Ramanujan- ISH Харшад номер, с целью этого поста. (Для этого может быть технический термин, но я не смог его найти, если он не член A110921 )
Задание
Учитывая положительное целое число в n
качестве ввода, вывода значения truthy или falsey в зависимости от того входного n
является Харди-Ramanujan- ISH Харшад номер. Вывод правда, если это так. В противном случае выведите фальси.
Обратите внимание , что только четыре Харди-Ramanujan- ISH существует число харшада ( 1
, 81
, 1458
и 1729
), и вы можете написать код , который проверяет эквивалентность с ними. Но я не думаю, что это будет весело.
вход
Ваша программа должна принимать положительное целое число (другими словами, натуральное число). Это может быть принято любым способом, кроме предположения, что он присутствует в переменной. Чтение из модального окна, поля ввода, командной строки, файла и т. Д. Разрешено. Также возможно использование ввода в качестве аргумента функции.
Выход
Ваша программа должна выдавать истинное или ложное значение. Они не должны быть последовательными. Ваша программа может выводить любым способом, кроме записи выходных данных в переменную. Запись на экран, в командную строку, файл и т. Д. Разрешена. Вывод с функцией также return
допускается.
Дополнительные правила
Вы не должны использовать встроенный для выполнения задачи (интересно, что любой язык будет иметь такой встроенный, но тогда Mathematica ... )
Стандартные лазейки применяются.
Тестовые случаи
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
Критерий победы
Это код-гольф , поэтому выигрывает самый короткий код в байтах!
1 Каждый год 22 - го декабря, в день рождения Сриниваса Рамануджане, Национальный день Математика наблюдается в Индии. Его коллеги в Кембридже сравнивали его с Якоби, Эйлером и даже Ньютоном. Помимо того, что он был настолько велик, у него почти не было формальной подготовки по чистой математике , но он все же внес важный вклад в математический анализ , теорию чисел , бесконечные ряды и непрерывные дроби . К сожалению, он умер в раннем возрасте 32 лет с тысячами математических открытий в его памяти. На нем также был снят фильм , основанный на его биографии ,Человек, который знал бесконечность .
источник
Ответы:
Нейм , 5 байт
Объяснение:
Попытайся!
источник
ArnoldC, 888 байт
Я знаю, я просто проверяю равенство, но это не должно быть забавной частью программы.
Приятного чтения. :)
Добавлены некоторые новые строки для удобства чтения:
Попробуйте онлайн
источник
Сборка x86,
55353331 байт:Предполагается ABI, где возвращаемое значение находится в EAX, а параметры помещаются в стек ... так что почти все из них.
источник
Брахилог , 8 байт
Попробуйте онлайн!
источник
Haskell ,
5655 байтПопробуйте онлайн!
Pointfree: (56 байт)
Попробуйте онлайн!
Скучно: (24 байта)
Попробуйте онлайн!
источник
JavaScript ES6,
5957 байтПопробуйте онлайн!
В основном разбивается на массив цифр, объединяется с
+
этим выражением и убирает его, чтобы в основном суммировать цифры.string*string
автоматически преобразует строки в целые. Принимает ввод в виде строкиисточник
Mathematica, 42 байта
источник
Рубин, 69 байт
Сначала попробуйте с целым числом в качестве входных данных:
Вторая попытка со строкой в качестве ввода:
источник
.split('')
может быть сделано.chars
Пакет, 164 байта
Печатает 1 в случае успеха, нет вывода при ошибке.
источник
JavaScript (ES6), 72 байта
Это действительное представление ES6. Добавить
f=
в начале и вызвать какf(arg)
.Тестовый фрагмент:
источник
Котлин,
111108 байтПопробуйте онлайн!
Как это типично для статически скомпилированных JVM-решений, много байтов теряется только при объявлении основной функции и при вызове print (). Основная часть функции - 60-байтовые байты, что совсем неплохо для статически типизированного языка общего назначения, такого как Kotlin.
Kotlin, буровой раствор, 69 байт
Попробуйте онлайн!
источник
05AB1E , 5 байтов
Попробуйте онлайн!
источник
DSODR*Q
было то, что я имел до того, как посмотрел.D
.Python 2 , 55 байт
Попробуйте онлайн!
объяснение
eval()
Решение являетсябит2 байта больше ...Альтернативное
(недействительное?)Решение,4229 байтЭто решение проверяет равенство всех чисел.
Попробуйте онлайн!
источник
[1,81,1458,1729].__contains__
Чеддер , 60 байт
Попробуйте онлайн!
источник
NewStack , 16 байт
Разбивка:
Используя 1729 в качестве примера
Ничего не печатает, если false, и исходный ввод, если true.
источник
¹
, стек состоит из[1]
. И так как мы определилиf
илиf(x)
равняем ваш вход, умножение каждого элемента в стеке на функциюf
заменяет1
наш вход. (Потому что[1] * f(x)
=[f]
)MATL , 11 байт
Попробуйте онлайн!
t
- принять данные и продублировать ихV!U
- разбить его на отдельные цифрыs
- суммировать эти цифрыt
- продублируйте эту суммуVP
- превратить это в строку, переверните ее слева направоU
- превратить это обратно в число*
- умножить два последних значения (цифра-сумма и ее перевернутая версия слева направо)=
- проверьте, равен ли это исходному входу (который является единственным другим значением в стеке)источник
Japt, 8 байт
Запустите его онлайн
источник
Желе , 8 байт
Попробуйте онлайн!
источник
DS×Ṛ$Ḍ=
сохраняет байт.Perl 6 , 30 байт
источник
PHP , 52 байта
Попробуйте онлайн!
PHP , 36 байт
Попробуйте онлайн!
источник
APL (Dyalog) , 18 байт
Попробуйте онлайн!
источник
Par / GP ,
5652 байтаПопробуйте онлайн!
источник
MathGolf , 5 байтов
Попробуйте онлайн!
Почти так же, как байт решения Neim для байта.
источник