Автоморфное число - это число, которое является суффиксом его квадрата в базе 10. Это последовательность A003226 в OEIS.
Твое задание:
Напишите программу или функцию, чтобы определить, является ли вход автоморфным числом.
Входные данные:
Целое число от 0 до 10 ^ 12 (включительно), которое может быть или не быть автоморфным числом.
Выход:
Значение истинности / ложности, указывающее, является ли вход автоморфным числом.
Примеры:
0 -> truthy
1 -> truthy
2 -> falsy
9376 -> truthy
8212890625 -> truthy
Подсчет очков:
Это код-гольф , выигрывает самая низкая оценка в байтах.
code-golf
number
decision-problem
Грифон - Восстановить Монику
источник
источник
Ответы:
Брахилог , 5 байт
Попробуйте онлайн!
Как это устроено
источник
√a₁?
Почему нет?Python 2 , 24 байта
Попробуйте онлайн!
Впервые в истории добавление
L
в репер longs Python 2 является скорее функцией, чем ошибкой.Идея состоит в том, чтобы проверить, если, скажем,
76^2=5776
заканчивается76
, проверяя,76L
является ли подстрока5776L
. Чтобы сделатьL
отображение для не больших чисел, мы умножаем на1L
или имеем2L
в качестве показателя степени, так как арифметическая операция с длинным с производит длинное.источник
Python 2 , 31 байт
Вне игры в гольф от xnor ... (это происходит каждый раз)> <Но, на удивление, это Pythonic для code-golf .
Люди не склонны помнить, что у Python есть
str.endswith()
...Попробуйте онлайн!
источник
`n*n`
для преобразования числа в строку?05AB1E , 5 байтов
Попробуйте онлайн!
источник
n
квадрат,.s
суффиксы,¹
входные данные иå
тесты на членство @isaacgСетчатка , 44 байта
Попробуйте онлайн!
Существует ровно 4 решения 10-адического уравнения
x*x = x
.источник
5*5 != 5
. Тем не менее, вы можете заметить некоторую закономерность в числах, с которыми вы связаны 4 решения: 0, 1, ... 59918212890625, ... 40081787109376 (p-адические числа идут бесконечно влево ). Числа, на которые вы ссылаетесь, являются суффиксами 4 чисел.Алиса , 17 байт
Попробуйте онлайн!
Ничего не выводится (что ложно в обычном режиме) или
Jabberwocky
(непусто и, следовательно, верно в обычном режиме; это также каноническое истинное строковое значение).объяснение
Это небольшая модификация общей структуры для программ линейного режима Ordinal.
/
В середине используется , чтобы иметь одного оператор в режиме кардинала между (*
) , а затем нам нужно ,#
чтобы пропустить его в режиме Порядкового на обратном пути. Линейная программа тогда:Давайте пройдем через это:
источник
Mathematica, 31 байт
Попробуйте онлайн! Mathics печатает дополнительное сообщение, но ответ правильный
источник
Python 2,
37333029 байтСохранено 4 байта благодаря @LeakyNun. Сэкономили 3 байта, заметив, что ввод меньше 10 ^ 12, поэтому
n
не заканчивается буквой "L". Благодаря @Dennis удалось сэкономить 1 байт, потому что я ошибся в первую очередь.Попробуйте онлайн! (Ссылка TIO любезно предоставлена @Dennis).
источник
C (gcc) , 57 байтов
Основываясь на ответе @ betseg, эта функция возвращает 1 или 0 . Он производит вывод мусора в STDOUT, что разрешено по умолчанию .
Счет содержит +4 байта для флага компилятора
-lm
.Попробуйте онлайн!
источник
Рубин, 22 байта
Попробуйте онлайн!
источник
C # (.NET Core) , 47 байт
Попробуйте онлайн!
источник
$"{n}"
наn+""
? Кроме того, не могли бы вы добавить ссылку TryItOnline ? О, и это фрагмент, а не функция / программа. Таким образом, вы должны добавитьn=>
перед этим.n+""
. Благодарность!bool f(long n)
или конечная точка с запятой для лямбда-ответов в C #, Java и т. Д. Простоn=>$"{BigInteger.Multiply(n,n)}".EndsWith(n+"")
достаточно. :) А я чуть не забыл: добро пожаловать в PPCG!n=>
, используяSystem.Func
.Древесный уголь ,
1211 байтовПопробуйте онлайн!
Возвращает
False
какfalsey
иTrue
какtruthy
.Power
функцию?)источник
0
для10
,100
...1
для50
,60
...2
для760
,3792
...JavaScript (ES6), 23 байта
Попытайся
Написал этот фрагмент на моем телефоне, поэтому, пожалуйста, измените его, если он работает неправильно.
источник
Желе , 6 байт
Попробуйте онлайн!
источник
Ị
...Котлин, 36 байт
источник
C 77 + 4 (
-lm
) = 81 байтПопробуйте онлайн!
источник
n*n
дляpow(n,2)
и сохранить 5 байт.R, 28 байт
Создает функцию:
Принимает такой модуль
x^2
, что мы сохраняем последние цифры, с которыми сравниваемx
.источник
Perl 5 , 15 + 1 (-p) = 16 байт
Попробуйте онлайн!
источник
Желе , 7 байт
Попробуйте онлайн!
Положительное число для да, 0 для нет.
источник
Сетчатка ,
4733 байта14 байтов благодаря Мартину Эндеру.
Попробуйте онлайн!
источник
$%
...PHP , 41 байт
PHP Sandbox Online
PHP , 42 байта
без регулярных выражений
PHP , 44 байта
Используйте расстояние Левенштейна
источник
Дивиль , 26 байт
Использование:
источник
Пакетный, 122 байта
Алгоритм ограничен только целочисленным типом, используемым для переменных. В случае Batch это 32-разрядные целые числа со знаком, поэтому максимум равен 2147483647. Работает, проверяя n и n-1 на наличие необходимых степеней 2 и 5 в качестве факторов. (За исключением случаев, когда n равно 0 или 1, n и n-1 будут иметь один фактор каждый.)
источник
> <> , 30 байт
Попробуйте онлайн или посмотрите на рыбной площадке !
Подразумевается номер входа х уже находится в стеке.
Пояснение: Рыба берет коэффициент x 2 , увеличивая степень на 10, и считает, сколько раз это равно x . Когда сила 10 становится больше, чем х , он печатает счет и останавливается. Счет будет равен 1, если x автоморфен, и 0, если это не так.
источник
Par / GP , 23 байта
Попробуйте онлайн!
источник
Пиф ,
109 байтов-1 байт благодаря isaacg .
Возвращает 0, когда число является автоморфным, что-нибудь еще, если это не так.
Проверьте это онлайн!
Пояснения
источник
`
конвертировать в строку.Rexx (Regina) , 48 байтов
Попробуйте онлайн!
источник
Perl 6 , 15 байт
Попробуйте онлайн!
Возвращает истинный объект Match для автоморфных входных данных и ложное значение Nil для других чисел.
источник
Clojure, 59 байт
Это кажется слишком многословным.
источник
#(.endsWith(str(* % %))(str %))
?MATL , 10 байт
Это работает для чисел до
floor(sqrt(2^53))
, согласноdouble
ограничениям точности.Выход - положительное число (которое является правдивым), если оно автоморфное, или пустое (что неверно), если нет.
Попробуйте онлайн!
объяснение
Забавно, что в этом ответе используются две перегруженные версии
U
: при вводе строки он оценивается как число, а при вводе числа он вычисляет квадрат.источник