Votre objectif est de déterminer si un nombre donné n
est premier dans le moins d'octets. Mais, votre code doit être une seule expression Python 2 sur des nombres composés uniquement de
- les opérateurs
- la variable d'entrée
n
- constantes entières
- parenthèses
Pas de boucles, pas d'affectations, pas de fonctions intégrées, seulement ce qui est indiqué ci-dessus. Oui c'est possible.
Les opérateurs
Voici une liste de tous les opérateurs de Python 2 , qui incluent les opérateurs arithmétiques, au niveau du bit et logiques:
+ 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
Toutes les valeurs intermédiaires sont des entiers (ou False / True, ce qui équivaut implicitement à 0 et 1). L'exponentiation ne peut pas être utilisée avec des exposants négatifs, car cela peut produire des flottants. Notez que la /
division au sol, contrairement à Python 3, //
n'est donc pas nécessaire.
Même si vous n'êtes pas familier avec Python, les opérateurs devraient être assez intuitifs. Voir ce tableau pour la priorité des opérateurs et cette section et ci-dessous pour une spécification détaillée de la grammaire. Vous pouvez exécuter Python 2 sur TIO .
E / S
Entrée: un entier positif n
d'au moins 2.
Sortie: 1 si n
est premier et 0 sinon. True
et False
peut également être utilisé. Le moins d'octets gagne.
Étant donné que votre code est une expression, il s'agira d'un extrait de code, qui attend la valeur d'entrée stockée en tant que n
et évalue la sortie souhaitée.
Votre code doit fonctionner pour n
des limites arbitrairement grandes, système mis à part. Étant donné que le type de nombre entier de Python est illimité, il n'y a pas de limites sur les opérateurs. Votre code peut toutefois être long à exécuter.