вступление
Обратное и сложное так просто, как кажется, возьмите n
и добавьте его к своим цифрам в обратном порядке. (например, 234 + 432 = 666).
Если вы применяете этот процесс несколько раз, некоторые числа в конечном итоге попадут в простое число, а некоторые никогда не достигнут простого.
пример
У меня сейчас
11431 респ.
11431 is not prime
11431 + 13411 = 24842 which is not prime
24842 + 24842 = 49684 which is not prime
49684 + 48694 = 98378 which is not prime
98378 + 87389 = 185767 which is prime!
Это число попадает в простое число
Напротив, любое кратное 3 никогда не попадет в простое число, потому что все кратные 3 имеют цифру, кратную 3, и наоборот. Таким образом, обратное и сложение, кратное 3, всегда будет приводить к новому кратному 3 и, следовательно, никогда не будет простым.
задача
Возьмите положительное целое число n
и определите, приведет ли многократное обращение и добавление к простому числу. Выведите истинное или ложное значение. Либо истинное значение for достигает простого значения, либо ложное значение для not, либо оба варианта приемлемы.
Считается, что простые числа достигают простого числа за ноль итераций.
Это код-гольф, поэтому постарайтесь сделать свой код максимально коротким.
Тестовые случаи
Истинный для достигает простого ложь для никогда не достигает простого
11 -> True
11431 -> True
13201 -> True
13360 -> True
13450 -> True
1019410 -> True
1019510 -> True
22 -> False
1431 -> False
15621 -> False
14641 -> False
намек
Во время написания этого задания я обнаружил интересный трюк, который значительно облегчает эту проблему. Без этого трюка нет ничего невозможного, и с этим тоже нетривиально, но это помогает. Мне было очень весело обнаружить это, поэтому я оставлю это в спойлере ниже.
Повторное обратное и добавление всегда будет кратно 11 в 6 итерациях или меньше. Если он не достигнет простого числа, прежде чем он достигнет числа, кратного 11, он никогда не достигнет простого.
источник
Ответы:
Рубин ,
84 79 7774 байтаПопробуйте онлайн!
источник
Haskell , 65 байт
f
принимаетInteger
и возвращаетBool
.True
означает, что оно достигает пика.Попробуйте онлайн!
К сожалению, короткое, но неэффективное простое тестирование означает, что тестовые сценарии OP,
True
кроме того,11
становятся слишком большими для завершения. Но, например, 11432 - этоTrue
дело, которое заканчивается.Вы также можете попробовать этот на 3 байта длиннее, для которого TIO может закончить все
True
тестовые случаи:Попробуйте онлайн!
Первичные тесты обеих версий разбиваются на 1, но бывает так, что в любом случае он достигает простого (2).
В противном случае я заметил примерно то же самое, что и GB в спойлере представления Ruby:
источник
Python 2,
123110 байтСэкономили 13 байт благодаря Эрджану Йохансену и Wheat Wizard !
Возвращает 1, если оно достигает простого числа, 0, если нет. Попробуйте онлайн!
источник
Python 2 ,
787069 байтПопробуйте онлайн!
объяснение
Эта программа опирается на тот факт, что
Эта программа представляет собой рекурсивную лямбду с округлыми логическими сравнениями. Сначала проверяется, является ли n простым.
Если это правда, мы возвращаем истину.
Если это ложно, мы проверяем, является ли оно кратным 11.
Если false, мы возвращаем false, в противном случае мы возвращаем результат
f
на следующей итерации.источник
Желе , 11 байт
Попробуйте онлайн!
источник
S
может бытьT
также.RD$+$
также может быть+RD$$
илиRD+<newline>Ç
(все тривиальные модификации)S
потому что у него меньше шансов показать что-либо> 1. НетRD
, простоṚḌ
, и я выбрал,ṚḌ$+$
чтобы я мог организовать это лучше.S
; Я должен был выбрать этоT
, но это в основном для всех остальных.05AB1E ,
1413 байтРЕДАКТИРОВАТЬ : Сохраненный один байт, потому что ввод используется повторно, если в стеке недостаточно элементов
Попробуйте онлайн!
Использует подсказку в вопросе
Как это работает
источник
MATLAB,
8881 байтисточник
JavaScript (ES6), 73 байта
Возвращает
0
илиtrue
.комментарии
Это основано на формуле магического спойлера, описанной Wheat Wizard.
Контрольные примеры
Я удалил два самых больших ввода из фрагмента, так как они занимают несколько секунд. (Но они тоже работают.)
Показать фрагмент кода
источник
Mathematica, 45 байт
источник
Microsoft Sql Server,
826786 * байт* Я вспомнил о функции IIF, которая была представлена в Microsoft Sql Server 2012
Проверьте это онлайн
Более аккуратное форматирование
источник
/*true*/
и/*false*/
комментарии?Желе , 9 байт
Попробуйте онлайн!
Как это работает
источник
PHP 114 байт
Более читаемая версия:
Попробуйте онлайн!
Я использовал эту вещь для подсчета байтов.
источник