Определим как список остатков евклидова деления на , , 5 и 7 .
Учитывая целое число , вы должны выяснить, существует ли целое число такое, что является перестановкой .
Примеры
Критерий выполняется для , потому что:
- имеем
- для имеем , что является перестановкой
Критерий не соответствует , потому что:
- имеем
- наименьшее целое число такое, что является перестановкой равно (что также приводит к )
правила
- Вы можете либо вывести истинное значение, если существует, и ложное значение в противном случае, либо два различных и непротиворечивых значения по вашему выбору.
- Это код-гольф .
намек
Вам действительно нужно вычислить ? Что же, может быть. А может и нет.
Контрольные примеры
Некоторые значения для которых существует :
3, 4, 5, 8, 30, 100, 200, 2019
Некоторые значения для которых не существует:
0, 1, 2, 13, 19, 48, 210, 1999
Haskell , 69 байт
На основании китайской теоремы об остатках
Попробуйте онлайн!
источник
Haskell , 47 байтов
Попробуйте онлайн!
источник
Perl 6 ,
64615943 байтаПопробуйте онлайн!
-16 благодаря @Jo King
источник
C # (интерактивный компилятор Visual C #) ,
125423836 байтПрямой порт ответа @ xnor, основанный на решении @ RobinRyder.
Сохранено 4 байта благодаря @ Örjan Johansen!
Сохранено еще 2 благодаря @Arnauld!
Попробуйте онлайн!
источник
-~n%6/4>0
просто-~n%6>3
?Python 2 , 41 байт
Попробуйте онлайн!
Использует ту же характеристику, что и Робин Райдер . Чек
n%2!=n%3<2
сокращен до-~n%6/4
. Написание трех условий оказалось короче, чем написание общего условия:46 байт
Попробуйте онлайн!
источник
Wolfram Language (Mathematica) , 67 байт
Попробуйте онлайн!
источник
Рубин , 54 байта
Попробуйте онлайн!
Использует умное решение Робина Райдера .
источник
Wolfram Language (Mathematica) , 56 байт
Попробуйте онлайн!
Находит все неидентичные перестановки остатков входных данных по модулю 2, 3, 5, 7 и проверяет, есть ли какие-либо из них ниже
{2,3,5,7}
в каждой координате. Обратите внимание, чтоOr@@{}
этоFalse
.источник
Java (JDK) , 36 байт
Попробуйте онлайн!
кредиты
источник
R , 72 байта
Попробуйте онлайн!
источник
PHP ,
817872 байтаРиф на ответ @Robin Ryder . Ввод через
STDIN
, выходной,'T'
если правдивый, и пустой,''
если ложный.Попробуйте онлайн!
Или 73 байта с
1
или0
ответwhile($y<3)$r|=$argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u;echo$r;
Попробуйте онлайн (все тестовые случаи)!
Оригинальный ответ,
133127 байтПопробуйте онлайн!
источник
Python 3 , 69 байт
Попробуйте онлайн!
Запрограммированный
источник
05AB1E , 16 байтов
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
Посмотрите эту подсказку 05AB1E (раздел Как сжать большие целые числа? ), Чтобы понять, почему
Ƶ.
это так209
.источник
J , 40 байт
Попробуйте онлайн!
Грубая сила...
источник
Желе , 15 байт
Попробуйте онлайн!
Я уверен, что есть ответ гольфиста. Я истолковал истинное значение как что-либо, что не равно нулю, так что здесь это число возможных значений k. Если это должно быть два разных значения, это стоит мне еще один байт.
объяснение
источник
?
это конструкция if-else в Jelly; для некоторых языков это сложный вопрос).Ḣe$
если бы вы хотели :)