Su objetivo es determinar si un número dado n
es 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 n
que es al menos 2.
Salida: 1 si n
es primo y 0 en caso contrario. True
y False
tambié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 n
y evaluando el resultado deseado.
Su código debe funcionar para n
arbitrariamente 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.