На основании сообщения чата
Соревнование
Учитывая введенное число n > 9
, создайте его наоборот, игнорируя ведущие нули. Затем составьте список всех простых факторов, которые не имеют общего у числа и его обратного . Умножьте эти факторы вместе, чтобы создать необычный номер фактора для ввода.
Или, если выразиться иначе: если rev(n)
обозначает десятичное обращение целого числа n
, рассчитать произведение на n
и rev(n)
разделить на квадрат gcd(n, rev(n))
.
Выведите это число.
Отработанные примеры
Например, 2244
обращается к 4422
. Первичные факторы первого есть, [2, 2, 3, 11, 17]
а главные факторы обратного [2, 3, 11, 67]
. Числа, не являющиеся общими множителями, таковы [2, 17, 67]
, 2278
как и выходные данные.
Для другого примера 1234
обращаемся к 4321
. Продукт есть 5332114
и GCD есть 1
, так что выход есть 5332114
.
Дальнейшие уточнения
Очевидно, что палиндромное число будет иметь все свои общие факторы с обратным, поэтому в таком случае вывод будет 1
( n*n/n^2
). Очевидно, что выход также может быть умножением всех факторов (т. Е. Gcd равен 1 - вход и его обратное взаимно простое число), как в случае 1234
примера.
правила
- Можно предположить, что ввод и вывод соответствуют целочисленному типу вашего языка.
- Вход и выход могут быть предоставлены в любом удобном формате .
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Если возможно, укажите ссылку на среду онлайн-тестирования, чтобы другие люди могли опробовать ваш код!
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
Примеры
in
out
17
1207
208
41704
315
1995
23876
101222302
источник
1995
(я считаю)Ответы:
05AB1E , 6 байтов
Код
Использует кодировку 05AB1E . Попробуйте онлайн!
объяснение
источник
J, 18 байт
Попробуйте онлайн!
В качестве альтернативы (заслуга подхода @ Аднана для второго),
J, 15 байт (решение @ миль)
объяснение
Это просто прямая реализация алгоритма, заданного ОП.
Пояснение, решение @ miles
Очень умно.
источник
*/@(,%+.)|.&.":
Mathematica, 33 байта
Попробуйте онлайн!
источник
Желе , 8 байт
Попробуйте онлайн!
источник
DU
вместоṚ
)Ṛ
целое число переворачивает цифры, но не конвертирует обратно в целое число.JavaScript (ES7),
6764 байтаТак много байтов просто чтобы поменять число :(
Принимает ввод в виде строки.
Попытайся
источник
Haskell, 44 байта
Попробуйте онлайн!
источник
р ,
10889 байт-19 байт благодаря планнапу за его алгоритм gcd
Это попытается выделить хотя бы один вектор размера
4*n
байтов (а я думаю, что целых 4), поэтому это приведет к ошибке памяти для достаточно большого размераn
.Попробуйте онлайн!
источник
Python 3 ,
7368 байт-5 байт благодаря мистеру Xcoder.
Попробуйте онлайн!
источник
MATL ,
131211 байтПопробуйте онлайн! Или проверьте все тестовые случаи .
объяснение
источник
Нейм , 11 байт
Попробуйте онлайн!
Нет встроенного GCD. ; -;
источник
Шелуха , 10 байт
Попробуйте онлайн!
-1 спасибо H.PWiz .
-1 спасибо Згарбу .
источник
Japt ,
131211 байтПопытайся
объяснение
Неявный ввод целого числа
U
. Пустая строка в начале, предотвращает перезапись следующей строкиU
Преобразовать
U
в строку (s
), обратить ее (w
), преобразовать обратно в целое число и присвоить переменнойV
.Умножить
U
наV
.Делить.
ГКД
V
иU
.Squared. Неявный вывод результирующего целого числа.
Альтернатива, 13 байт
Просто потому, что мне нравится в использовании
N
.Попытайся
источник
Pyth , 13 байт
Попробуй это здесь!
Pyth , 15 байт
Это использует подход Аднана и принимает входные данные в виде строки.
Попробуй здесь
источник
Машинный код x86, 39 байт
Вышеприведенная функция вычисляет «необычное число факторов» указанного входного параметра. В соответствии с соглашением о вызовах __fastcall на основе регистров параметр передается в
ECX
регистр. Результат возвращается вEAX
регистр, как и во всех соглашениях о вызовах x86.Попробуйте онлайн!
Это заняло очень много времени, чтобы написать в такой компактной форме, но это было забавное упражнение. Множество искажений для получения наиболее оптимального возможного планирования регистров в рамках ограничений
DIV
неявных операндов инструкции x86 и попытки использовать короткие кодировкиMUL
иXCHG
инструкции, когда это возможно. Мне было бы очень любопытно посмотреть, может ли кто-нибудь придумать другой способ сократить его дальше. Мой мозг был довольно жарен к концу. Спасибо компилятору в следующий раз, когда вы его увидите! (Хотя это намного лучший код, чем тот, который генерирует компилятор ... Особенно, если вы немного подправили его без ограничений по размеру, удалив такие вещи, какXCHG
.)источник
Perl 5 , 72 байта
71 байт кода + 1 флаг (
-p
)Попробуйте онлайн!
источник
Пайк , 8 байт
Попробуй это здесь!
Принимает ввод в виде строки.
источник
Python 2 , 70 байт
Спасибо мне всем .
Попробуйте онлайн!
Python 2 , 77 байт
Обратите внимание, что в Python 2 вы не можете использовать
math.gcd()
метод, и вы должны сделать это «вручную».Попробуйте онлайн!
источник
gcd
какfractions.gcd
.math.gcd
.Ом , 9 байт
Попробуйте онлайн!
источник
Ява 8,
158150148138125123116107+ 19байтПопробуйте онлайн!
источник
t!=0
наt>0
, так как t никогда не будет отрицательным.f*r/(i*i)
так же, какf/i*r/i
. Вы можете отказаться,f=t;
иr=i;
если вы цепочки назначенияi
иt
.while(t>0)t=i%(i=t);
(-11 байт).