Introdução (pode ser ignorado)
Colocar todos os números inteiros positivos em sua ordem regular (1, 2, 3, ...) é um pouco chato, não é? Então, aqui está uma série de desafios em torno de permutações (reorganizações) de todos os números inteiros positivos. Este é o sexto desafio desta série (links para o primeiro , segundo , terceiro , quarto e quinto desafio).
Esse desafio tem um tema leve de Páscoa (porque é Páscoa). Eu me inspirei neste ovo de ganso altamente decorado (e na minha opinião pessoal bastante feio).
Isso me lembrou a espiral de Ulam , onde todos os números inteiros positivos são colocados em uma espiral no sentido anti-horário. Essa espiral tem alguns recursos interessantes relacionados aos números primos, mas isso não é relevante para este desafio.
Chegamos à permutação deste desafio de números inteiros positivos se pegarmos os números na espiral de Ulam e rastrearmos todos os números inteiros em uma espiral de rotação no sentido horário , começando em 1. Dessa forma, obtemos:
1, 6, 5, 4, 3, 2, 9, 8, 7, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 25, 24, 23, etc.
Se você desenhar as duas espirais, obterá uma espécie de malha infinita de espirais (casca de ovo) ( observe a referência da Nova Ordem ali ).
Esta sequência está presente no OEIS sob o número A090861 . Como esse é um desafio de "sequência pura", a tarefa é gerar para um dado como entrada, onde é A090861 .
Tarefa
Dada uma entrada inteira , imprima no formato inteiro, onde é A090861 .
Nota: a indexação baseada em 1 é assumida aqui; você pode usar a indexação baseada em 0; portanto, , etc. Por favor mencione isso na sua resposta se você optar por usá-lo.
Casos de teste
Input | Output
---------------
1 | 1
5 | 3
20 | 10
50 | 72
78 | 76
123 | 155
1234 | 1324
3000 | 2996
9999 | 9903
29890 | 29796
Regras
- Entrada e saída são números inteiros.
- Seu programa deve, no mínimo, suportar entrada no intervalo de 1 a 32767).
- Entrada inválida (0, valores flutuantes, seqüências de caracteres, valores negativos etc.) pode levar a resultados imprevisíveis, erros ou comportamento (não) definido.
- Aplicam- se as regras de E / S padrão .
- As brechas padrão são proibidas.
- Isso é código-golfe , então as respostas mais curtas em bytes ganham