A way of doing that would be by using the following table:
Number | Colour |
0 | 00.00.00 |
255 | 00.00.FF |
510 | 00.FF.FF |
765 | 00.FF.00 |
1020 | FF.FF.00 |
1275 | FF.FF.FF |
1530 | FF.00.FF |
1785 | FF.00.00 |
2040 | 00.00.00 |
Intermediate value are calculated by linear interpolation. This gives you 2040 different colours; nearby values are mapped to nearby numbers; and values far apart will have quite different values (with the caveat that the table above is cyclic). It shouldn't be too hard to turn this table into code.
If you just have 1000 numbers, multiply the numbers by 2 before consulting the above table, or just use a subset of the colours.
If you have a lot of numbers, much more numbers than there are different values, it probably pays to make a lookup table.