Uma régua padrão de comprimento n tem marcas de distância nas posições 0, 1, ..., n (em quaisquer unidades). Uma régua esparsa possui um subconjunto dessas marcas. Uma régua pode medir a distância k se ele tem marcas em posições p e q com p - q = k .
O desafio
Dado um número inteiro positivo n , imprima o número mínimo de marcas necessárias em uma régua esparsa de comprimento n para que ele possa medir todas as distâncias 1, 2, ..., n .
Este é o OEIS A046693 .
Como exemplo, para a entrada 6, a saída é 4. Ou seja, uma régua com marcas em 0, 1, 4, 6 funciona, como 1−0 = 1, 6−4 = 2, 4−1 = 3, 4−0 = 4, 6−1 = 5 e 6−0 = 6.
Regras adicionais
- O algoritmo deve ser válido para n arbitrariamente grande . No entanto, é aceitável se o programa estiver limitado por restrições de memória, hora ou tipo de dados.
- A entrada / saída pode ser obtida / produzida por qualquer meio razoável .
- Programas ou funções são permitidos, em qualquer linguagem de programação . As brechas padrão são proibidas.
- O menor código em bytes vence.
Casos de teste
1 -> 2
2 -> 3
3 -> 3
4 -> 4
5 -> 4
6 -> 4
7 -> 5
8 -> 5
9 -> 5
10 -> 6
11 -> 6
12 -> 6
13 -> 6
14 -> 7
15 -> 7
16 -> 7
17 -> 7
18 -> 8
19 -> 8
20 -> 8
21 -> 8
22 -> 8
23 -> 8
24 -> 9
25 -> 9
26 -> 9
27 -> 9
28 -> 9
29 -> 9
30 -> 10
31 -> 10
32 -> 10