A positive integer `k` is a __Loeschian number__ if - `k` can be expressed as `i*i + j*j + i*j` for `i`, `j` integers. For example, the first positive Loeschian numbers are: `1` (`i=1`, `j=0`); `3` (`i=j=1`); `4` (`i=2`, `j=0`); `7` (`i=2`, `j=1`); `9` (`i=-3`, `j=3`); ... Note that `i`, `j` for a given `k` are not unique. For example, `9` can also be generated with `i=3`, `j=0`. Other equivalent characterizations of these numbers are: - `k` can be expressed as `i*i + j*j + i*j` for `i`, `j` non-negative integers. (For each pair of integers `i`, `j` there's a pair of non-negative integers that gives the same `k`) - There is a set of `k` contiguous hexagons that forms a tesselation on a hexagonal grid (see illustrations for [`k = 4`](https://i.sstatic.net/keJqMl.png) and for [`k = 7`](https://i.sstatic.net/Dj0lKl.png)). (Because of this property, these numbers find application in [mobile cellular communication networks](http://www.wirelesscommunication.nl/reference/chaptr04/cellplan/reuse.htm).) - See more characterizations in the [OEIS page](https://oeis.org/A003136) of the sequence. ##The challenge Given a __positive integer__, output a truthy result __if it is a Loeschian number__, or a falsy result otherwise. The program or function should handle (say in less than a minute) inputs up to `1000`, or up to data type limitations. Code golf. Shortest wins. ##Test cases The following numbers should output a truthy result: 1, 4, 7, 12, 13, 108, 109, 192, 516, 999 The following numbers should output a falsy result: 2, 5, 10, 42, 101, 102, 128, 150, 501, 1000