Su objetivo es determinar si un número dado nes primo en la menor cantidad de bytes. Pero, su código debe ser una sola expresión de Python 2 en números que consisten solo en
- operadores
- la variable de entrada
n - constantes enteras
- paréntesis
Sin bucles, sin asignaciones, sin funciones integradas, solo lo que se menciona anteriormente. Si es posible.
Operadores
Aquí hay una lista de todos los operadores en Python 2 , que incluye operadores aritméticos, bit a bit y 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 los valores intermedios son enteros (o Falso / Verdadero, que implícitamente es igual a 0 y 1). La exponenciación no puede usarse con exponentes negativos, ya que esto puede producir flotadores. Tenga en cuenta que /hace la división del piso, a diferencia de Python 3, por //lo que no es necesario.
Incluso si no está familiarizado con Python, los operadores deberían ser bastante intuitivos. Vea esta tabla para la precedencia del operador y esta sección y más abajo para una especificación detallada de la gramática. Puede ejecutar Python 2 en TIO .
I / O
Entrada: Un entero positivo nque es al menos 2.
Salida: 1 si nes primo y 0 en caso contrario. Truey Falsetambién se puede usar. Pocos bytes ganan.
Como su código es una expresión, será un fragmento, esperando el valor de entrada almacenado como ny evaluando el resultado deseado.
Su código debe funcionar para narbitrariamente grandes, dejando a un lado los límites del sistema. Como el tipo de número entero de Python no tiene límites, no hay límites para los operadores. Su código puede tardar mucho tiempo en ejecutarse.