Мюнхгаузно Количество в базовом , также известный как цифра-цифровой инвариант Совершенного или PDDI является типом свойственно положительного целого числа , где сумма его base- цифр повышал до себя равно самого числа. Они названы в честь вымышленного барона Мюнхгаузена , который, по-видимому, поднял себя через свой хвост, чтобы спасти себя от утопления. Связанное понятие - Нарциссические числа .
Например, является тривиальным числом Мюнхгаузена в каждой базе, потому что . Кроме того, каждое положительное целое число является числом Мюнхгаузена с базой 1 по определению.
Что еще более интересно, - это число Мюнхгаузена с базой 10, потому что , и фактически является единственным другим числом Мюнхгаузена с базой 10 .
Частичный список чисел Мюнхгаузена в каждой базе до 35 можно найти в OEIS как последовательность A166623 .
Учитывая положительное целое число , определите, является ли оно числом Мюнхгаузена в любом основании .
правила
- Применяются правила ввода / вывода по умолчанию, поэтому:
- Полная программа или функции приемлемы.
- Входные данные могут быть из STDIN, как аргумент функции, а выходные данные могут быть из STDOUT, как возвращаемое значение функции и т. Д.
- Применяются лазейки по умолчанию.
- Результатом должен быть один из двух разных последовательных результатов. Так что
TRUE
это хорошо для правды иFALSE
хорошо для фальши, но вы можете изменить это или вернутьсяNone
для правды и1
фальши или что-то еще. Пожалуйста, укажите выбранные результаты в вашем ответе. - Ваш ответ должен работать хотя бы теоретически для любого натурального числа.
- Числа Мюнхгаузена используют условное обозначение , поэтому - это число Мюнхгаузена с основанием 2 как . Ваш код должен следовать этому соглашению.
- Разъяснения настоятельно приветствуются, хотя в представленных материалах, скорее всего, будет использоваться метод поиска методом перебора.
- Использование эзотерических языков приносит вам очки брауни, поскольку Мюнхгаузен был явно странным человеком.
Тестовые случаи
Truthy
1 (all bases)
2 (base 2)
5 (base 3)
28 (base 9 and base 25)
29 (base 4)
55 (base 4)
3435 (base 10)
923362 (base 9)
260 (base 128)
257 (base 64 and base 253)
Falsy
3
4
591912
3163
17
Это код-гольф , поэтому выигрывает самый короткий ответ на каждом языке (в байтах)!
источник
determine if it's a Munchausen number in any base b≥2.
Ответы:
05AB1E , 7 байтов
Попробуйте онлайн!
Большие тестовые случаи будут превышать время ожидания на TIO.
объяснение
источник
1^1
равно 1 .Желе , 8 байт
Урожайность
0
для Мюнхгаузена и др1
.Попробуйте онлайн!
Или увидеть первые пятьсот положительных целых чисел, разделенных как
[[Munchausen], [non-Munchausen]]
.Как?
Альтернатива для
1
Мюнхгаузена и др0
.:источник
1
был Мюнхгаузен.J ,
332827 байтПопробуйте онлайн!
e.
вход является элементом ...1#.
сумма каждого ряда ...i.@>: ... ]
0 .. вход и сам вход, переданные как левый и правый аргументы к ...^~@(#.inv)"0
преобразовать правый аргумент (вход) в каждую базу в левом аргументе и поднять каждый результат поэлементно до самого себя^~@
.::1
наконец, это необходимо, потому что вы не можете конвертировать однозначно в базу 1, поэтому это ошибки. в этом случае мы просто возвращаем 1, что не будет совпадать ни с одним числом, кроме 1, что нам и нужноисточник
R ,
7269 байт-1 байт благодаря digEmAll
Попробуйте онлайн!
Выходы
TRUE
для номеров Мюнхгаузена и дрFALSE
.x%/%b^(0:log(x,b))%%b)
преобразуетx
в базуb
, а цикл for выполняет остальную часть работы (переназначениеF
, котороеFALSE
по умолчанию).Мы должны позволить базе
b
пройти весь путь,x+1
а неx
заниматься деломx=1
.источник
+
с помощью|
и удаления!
, затем я понял, что написал 71, но мой код был на самом деле 70: DJapt , 13 байт
Сохранено один байт благодаря @Shaggy
Попытайся
источник
ÃÃøU
на<newline>øN
.N
, я никогда не использовал его раньше!Perl 6 , 51 байт
Попробуйте онлайн!
Объяснение:
источник
Рубин , 50 байтов
Тайм-аут TIO на 591912. Каким-то образом вытесняет Perl на 1 байт ... (на момент написания)
Попробуйте онлайн!
источник
JavaScript (ES7), 60 байт
Возвращает логическое значение.
Попробуйте онлайн!
комментарии
источник
APL (dzaima / APL) ,
2313 байтовПопробуйте онлайн!
Благодаря Adám, ngn и dzaima нам удалось сократить этот ответ на 10 байт с помощью dzaima / APL.
Префикс молчаливая функция. Числа Мюнхгаузена возвращают 1, иначе 0.
Как
источник
Wolfram Language (Mathematica) , 65 байт
Попробуйте онлайн!
-4 байта от @attinat
источник
Древесный уголь , 17 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Моя 16-байтовая попытка не сработала, но это может быть ошибкой в Charcoal, так что следите за этим. Выходы,
-
если только число не является числом Мюнхгаузена. Объяснение:источник
C # (интерактивный компилятор Visual C #) , 99 байт
Попробуйте онлайн!
источник
Haskell, 61 байт
Возвращается
True
за Мюнхгаузен иFalse
прочее.Попробуйте онлайн!
источник
C (gcc)
-lm
,7975 байтовПопробуйте онлайн!
Возврат
0
по номерам Мюнхгаузена и1
прочее.также 75 байтов
Попробуйте онлайн!
источник
Python 2 ,
8381 байтПопробуйте онлайн!
Возвращается
1
за правду и0
за фалси. Из-за рекурсии практически невозможно разобраться591912
, но это работает абстрактно.источник
Perl 6 ,
6665 байтПопробуйте онлайн!
источник
JavaScript (ES6), 88 байт
источник
Icon , 109 байт
Попробуйте онлайн!
Тайм-аут для
591912
. Значок воспринимается0^0
как переполнение, и поэтому мне нужна дополнительная проверка на ноль.источник
Stax , 15 байт
Запустите и отладьте его
Требуется очень много времени для больших тестовых случаев.
Объяснение:
источник