Esistono modi intelligenti per determinare se un numero è una potenza di 2. Questo non è più un problema interessante, quindi determiniamo se un dato numero intero è una potenza intera di -2 . Per esempio:
-2 => yes: (-2)¹
-1 => no
0 => no
1 => yes: (-2)⁰
2 => no
3 => no
4 => yes: (-2)²
Regole
È possibile scrivere un programma o una funzione e utilizzare uno dei metodi standard per ricevere input e fornire output.
L'input è un singolo intero e l'output deve essere un valore di verità se l'intero è una potenza intera di -2 e un valore di falsa in caso contrario. Nessun altro output (ad es. Messaggi di avviso) è consentito.
Si applicano le solite regole di overflow dei numeri interi: la soluzione deve essere in grado di funzionare per numeri interi arbitrariamente grandi in una versione ipotetica (o forse reale) della lingua in cui tutti i numeri interi non sono associati per impostazione predefinita, ma se il programma non riesce in pratica a causa dell'implementazione non supportando numeri interi così grandi, ciò non invalida la soluzione.
È possibile utilizzare qualsiasi linguaggio di programmazione , ma si noti che queste scappatoie sono vietate per impostazione predefinita.
Condizioni vincenti
Questa è una gara di code-golf : la risposta che ha il minor numero di byte (nella codifica scelta) è il vincitore.
-0.5
dovrebbero essere validi poiché è 2 ^ (- 1) .
i
non è naturale
i
tale che(-2)^i = 2