Введение
Давайте возьмем номер 180
. Это интересное число, потому что сумма цифр этого числа равна:
1 + 8 + 0 = 9
И в квадрате версия этого числа, или:
180² = 32400 > 3 + 2 + 4 + 0 + 0 = 9
Это оба 9 . Сумма цифр исходного номера и квадрата числа совпадают. Конечно, это также можно найти в OEIS: A058369 .
задача
Учитывая неотрицательное целое число n
, выводим n
е положительное число с этим условием.
Контрольные примеры (с нулевым индексом )
Input > Output
0 > 1
1 > 9
2 > 10
3 > 18
4 > 19
5 > 45
6 > 46
7 > 55
8 > 90
9 > 99
10 > 100
11 > 145
12 > 180
13 > 189
14 > 190
15 > 198
16 > 199
17 > 289
18 > 351
19 > 361
Вход также может быть проиндексирован на 1, если вам это подходит.
Это код-гольф , поэтому выигрывает представление с наименьшим количеством байтов!
^₂;?{ẹ+}ᵛ
Ответы:
Желе, 13 байт
Ввод 1-индексирован. Попробуйте онлайн!
Как это работает
источник
Haskell, 54 байта
Пример использования:
([x|x<-[1..],s x==s(x^2)]!!) 17
->289
.источник
JavaScript (ES6),
76 7372 байтаЯ потратил 30 минут, пытаясь заставить это работать, пока не понял, что выводил неправильную переменную: |
Это с нулевым индексом.
источник
Perl 6,
4746 байтисточник
05AB1E ,
1098 байтов1-индексироваться.
-1 байт благодаря @Emigna за счет удаления неявного
½
(увеличиваетсяcounter_variable
после каждой итерации) в конце-1 байт благодаря @Grimy, удаляющему дубликаты
SO
с помощью‚1ö
Попробуйте онлайн.
Объяснение:
источник
½
здесь, как это неявноµNDn‚1öË
.1ö
это как,SO
но векторизация, что позволяет нам избежать дублирования кода.Mathematica, 64 байта
Простая анонимная функция. Zero-индексироваться.
источник
Пиф, 15
1 байт благодаря DenkerAffe!
Попробуйте здесь или запустите Test Suite .
Использует опцию с 1 индексом.
Наивная реализация с использованием
.f
которой получает первыеn
числа, соответствующие заданному условию.источник
h
если вы используете 1-индексирование, которое явно разрешено.MATL ,
2423 байтаИспользует ввод на основе 1.
Попробуйте онлайн!
источник
Юлия,
7966 байтЭто рекурсивная функция, которая принимает целое число и возвращает целое число. Используется индексирование на основе 1.
Мы храним несколько вещей в качестве аргументов функции:
n
: Входx
: Счетчик, сколько чисел с этим условием мы нашлиi
: Номер для проверки состоянияs
: Функция для вычисления суммы цифр своего вводаХотя
x
это меньше, чем ввод, мы рекурсивно, увеличивая,x
еслиi
соответствует условию, и увеличиваяi
. Однаждыx == n
мы вернемсяi
, но мы должны вычесть 1, потому что он будет увеличен слишком много раз.источник
Выпуклый 0.2,
3635 байтConvex - это новый язык, который я разрабатываю и который основан на CJam и Golfscript. Интерпретатор и IDE можно найти здесь . Ввод - это целое число в аргументах командной строки. Индексы основаны на одном. Использует кодировку CP-1252 .
источник
Mathematica,
63606159 байтWhile making this the other answer popped up but I'm beating them by a single byte and I'm posting this before that one gets golfed.One indexed.источник
>2457
. Simply increasing yourRange
won't help, becauseA058369[n]/n
doesn't seem to converge.10^#
будет короче2^#*9
. Конечно, он становится слишком медленным после того, как n больше, чем примерно 6 ...9^#
? FilСетчатка, 103 байта
Определенно гольф.
Использует новую функцию Retina
%
для возведения в квадрат (следовательно, пока не работает с онлайн-версией).источник
Mathcad,
7050 байтовMathcad не имеет встроенных функций для преобразования числа в цифровую строку, поэтому пользовательская функция d (a) выполняет эту работу. Затем программа перебирает положительные целые числа, проверяя равенство сумм, пока не наберет n чисел в векторе v. Программа вычисляется с помощью оператора =, который отображает вектор результата. ( Обратите внимание, что вся программа выглядит точно так, как показано ниже на листе Mathcad )
Обновленная программа: предполагает инициализацию по умолчанию для нуля и использует тот факт, что Mathcad возвращает значение последнего оцененного оператора в программе.
Использует порядок вычисления выражений для приращения переменной a при первом суммировании (и затем становится доступным для использования в сумме квадратов)
Оригинальная программа: возвращает вектор всех чисел до n.
источник
Japt , 15 байт
1-индексированных
Попытайся
источник
Java 8, 113 байт
0 индексированные
Объяснение:
Попробуйте онлайн.
источник
Perl 5
-p
, 53 байтаВключает
+1
в себя для-p
1 основанный
Попробуйте онлайн!
источник
TI-BASIC
6662 байтаВводN в N й член в последовательности.
Ans
.Выход 1-индексированный
Вспомогательная функция генерирует сумму цифр значения в
Ans
.Примеры:
Объяснение:
Примечание: TI-BASIC - это токенизированный язык. Количество символов не равно количеству байтов.
источник
J , 62 байта
Попробуйте онлайн!
1 проиндексировано. J снова не справляется с поставленными задачами из-за чрезмерной механики поддержки.
источник
APL (NARS), 49 символов, 98 байтов
1-индексированный, тест:
источник
MathGolf , 10 байт
Попробуйте онлайн!
объяснение
Чтобы сделать это пригодным для использования, я решил представить версию, которая рассчитывает каждое число с этим свойством ниже 1000 и выбирает правильный элемент из этого списка. Чтобы иметь решение, которое будет работать для любого входного размера, первый байт можно заменить на10N скрипт всегда будет успешным. Тем не менее, это накладывает практический предел на очень низкие расчеты.
ú
(нажмите 10 ** TOS). Поскольку n: й член в последовательности всегда меньшеисточник