Definimos como a lista de remanescentes da divisão euclidiana de por , , e .
Dado um número inteiro , você deve descobrir se existe um número inteiro modo que seja uma permutação de .
Exemplos
O critério é atendido para , porque:
- temos
- para , temos , que é uma permutação de
O critério não é atendido para , porque:
- temos
- o menor número inteiro modo que é uma permutação de é (levando a )
Regras
- Você pode emitir um valor verdadeiro se existir e um valor falso, caso contrário, ou dois valores distintos e consistentes de sua escolha.
- Isso é código-golfe .
Sugestão
Você realmente precisa calcular ? Bem, talvez. Ou talvez não.
Casos de teste
Alguns valores de para os quais existe :
3, 4, 5, 8, 30, 100, 200, 2019
Alguns valores de para os quais não existe:
0, 1, 2, 13, 19, 48, 210, 1999
fonte
Haskell , 69 bytes
Baseado no teorema chinês do restante
Experimente online!
fonte
Haskell , 47 bytes
Experimente online!
fonte
Perl 6 ,
64615943 bytesExperimente online!
-16 graças a @Jo King
fonte
C # (compilador interativo do Visual C #) ,
125423836 bytesPorta direta da resposta do @ xnor, baseada na solução do @ RobinRyder.
Guardado 4 bytes graças a @ Ørjan Johansen!
Economizou mais 2 graças a @Arnauld!
Experimente online!
fonte
-~n%6/4>0
só-~n%6>3
?Python 2 , 41 bytes
Experimente online!
Usa a mesma caracterização que Robin Ryder . A verificação
n%2!=n%3<2
é encurtada para-~n%6/4
. Escrever as três condições ficou mais curto do que escrever uma geral:46 bytes
Experimente online!
fonte
Wolfram Language (Mathematica) , 67 bytes
Experimente online!
fonte
Ruby , 54 bytes
Experimente online!
Usa a solução inteligente de Robin Ryder .
fonte
Wolfram Language (Mathematica) , 56 bytes
Experimente online!
Localiza todas as permutações não identitárias dos demais módulos de entrada 2, 3, 5, 7 e verifica se alguma delas está abaixo
{2,3,5,7}
em cada coordenada. Note queOr@@{}
éFalse
.fonte
Java (JDK) , 36 bytes
Experimente online!
Créditos
fonte
R , 72 bytes
Experimente online!
fonte
PHP ,
817872 bytesUm riff na resposta de @Robin Ryder . A entrada é via
STDIN
, a saída é verdadeira'T'
e vazia''
se for falsa.Experimente online!
Ou 73 bytes com
1
ou0
respostawhile($y<3)$r|=$argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u;echo$r;
Experimente online (todos os casos de teste)!
Resposta original,
133127 bytesExperimente online!
fonte
Python 3 , 69 bytes
Experimente online!
Codificado
fonte
05AB1E , 16 bytes
Experimente online ou verifique todos os casos de teste .
Explicação:
Veja este 05AB1E ponta do meu (seção Como comprimir grandes inteiros? ) Para entender por que
Ƶ.
é209
.fonte
J , 40 bytes
Experimente online!
Força bruta ...
fonte
Gelatina , 15 bytes
Experimente online!
Tenho certeza de que há uma resposta para o golfista. Eu interpretei um valor verdadeiro como sendo qualquer coisa que não seja zero, então aqui está o número de valores possíveis de k. Se precisar ser dois valores distintos que me custam mais um byte.
Explicação
fonte
?
é a construção if-else no Jelly; para alguns idiomas é uma pergunta mais difícil.)Ḣe$
se quiser :)