Seu objetivo é determinar se um determinado número n
é primo no menor número de bytes. Mas, seu código deve ser uma única expressão Python 2 em números que consistem em apenas
- operadores
- a variável de entrada
n
- constantes inteiras
- parênteses
Sem loops, sem atribuições, sem funções internas, apenas o que está listado acima. Sim é possivel.
Operadores
Aqui está uma lista de todos os operadores no Python 2 , que incluem operadores aritméticos, bit a bit e lógicos:
+ adddition
- minus or unary negation
* multiplication
** exponentiation, only with non-negative exponent
/ floor division
% modulo
<< bit shift left
>> bit shift right
& bitwise and
| bitwise or
^ bitwise xor
~ bitwise not
< less than
> greater than
<= less than or equals
>= greater than or equals
== equals
!= does not equal
Todos os valores intermediários são números inteiros (ou Falso / Verdadeiro, que implicitamente são iguais a 0 e 1). A exponenciação não pode ser usada com expoentes negativos, pois isso pode produzir flutuações. Observe que /
a divisão de piso, diferentemente do Python 3, //
não é necessária.
Mesmo se você não estiver familiarizado com o Python, os operadores devem ser bastante intuitivos. Consulte esta tabela para obter precedência do operador e esta seção e abaixo para obter uma especificação detalhada da gramática. Você pode executar o Python 2 no TIO .
I / O
Entrada: um número inteiro positivo n
que é pelo menos 2.
Saída: 1 se n
for primo e 0 caso contrário. True
e False
também pode ser usado. Menos bytes ganha.
Como seu código é uma expressão, ele será um trecho, esperando o valor de entrada armazenado como n
e avaliando a saída desejada.
Seu código deve funcionar para n
limites arbitrariamente grandes do sistema. Como o tipo de número inteiro do Python é ilimitado, não há limites para os operadores. Seu código pode demorar, no entanto, para ser executado.