Páginas de um livro

Suponha que você some todos os números das páginas de um livro. Se o total for 21, o livro pode ter 6 páginas porque 1 + 2 + 3 + 4 + 5 + 6 = 21. Um total de 25 é impossível porque o próximo total é 28 (21 + 7).

Dado total, retorne true se ele puder ser igual à soma 1 + 2 + ... + n para alguma quantidade inteira de páginas; caso contrário, retorne false.

Você consegue elaborar uma solução mais eficiente do que somar números inteiros consecutivos um de cada vez?

Exemplos

pagesInBook(5) // false

pagesInBook(4005) // true

pagesInBook(9453) // true