Il tuo obiettivo è determinare se un determinato numero n
è primo nel minor numero di byte. Ma il tuo codice deve essere una singola espressione di Python 2 su numeri costituiti solo da
- operatori
- la variabile di input
n
- costanti intere
- parentesi
Nessun loop, nessuna assegnazione, nessuna funzione integrata, solo ciò che è elencato sopra. Si è possibile.
operatori
Ecco un elenco di tutti gli operatori in Python 2 , che includono operatori aritmetici, bit a bit e logici:
+ 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
Tutti i valori intermedi sono numeri interi (o False / True, che implicitamente è uguale a 0 e 1). L'esponenziazione non può essere usata con esponenti negativi, poiché ciò può produrre galleggianti. Nota che /
fa la divisione del pavimento, a differenza di Python 3, quindi //
non è necessario.
Anche se non hai familiarità con Python, gli operatori dovrebbero essere piuttosto intuitivi. Vedi questa tabella per la precedenza degli operatori e questa sezione e sotto per una specifica dettagliata della grammatica. È possibile eseguire Python 2 su TIO .
I / O
Input: un numero intero positivo n
che è almeno 2.
Uscita: 1 se n
è primo e 0 altrimenti. True
e False
può anche essere usato. Vince il minor numero di byte.
Poiché il codice è un'espressione, sarà uno snippet, in attesa del valore di input archiviato come n
e valutato sull'output desiderato.
Il codice deve funzionare a parte n
arbitrariamente, limiti di sistema a parte. Poiché il tipo di numero intero di Python è illimitato, non ci sono limiti per gli operatori. L'esecuzione del codice potrebbe richiedere molto tempo.